Encoding 编码dec字符而不是八进制

Encoding 编码dec字符而不是八进制,encoding,char,decimal,Encoding,Char,Decimal,我不明白为什么 char test = '\032'; 皈依 26 dec “\032”似乎被解释为八进制,但我希望它被视为十进制数 我想我对字符编码感到困惑 有谁能帮我澄清一下这一点,并给我一个如何将其转换为我想要的方式的提示吗 您使用的语法(\0xxx)用于八进制。要使用十进制,只需执行以下操作: char test = (char)32; 在C语言中,'\octaldigit'开始一个八进制转义序列。没有十进制转义序列 代码可以简单地使用: char test = 32; 要

我不明白为什么

char test = '\032';
皈依

26 dec
“\032”
似乎被解释为八进制,但我希望它被视为十进制数

我想我对字符编码感到困惑

有谁能帮我澄清一下这一点,并给我一个如何将其转换为我想要的方式的提示吗

您使用的语法(\0xxx)用于八进制。要使用十进制,只需执行以下操作:

char test = (char)32;

在C语言中,
'\octaldigit'
开始一个八进制转义序列。没有十进制转义序列

代码可以简单地使用:

  char test = 32;

要将32的值指定给
字符
,code有许多选项:

  // octal escape sequence
  char test1 = '\040';  // \ and then 1, 2 or 3 octal digits
  char test2 = '\40';

  // hexadecimal escape sequence
  char test3 = '\x20'; // \x and then 1 or more hexadecimal digits

  // integer decimal constant
  char test4 = 32;     // 1-9 and then 0 or more decimal digits

  // integer octal constant
  char test5 = 040;     // 0 and then 0 or more octal digits
  char test6 = 0040;
  char test7 = 00040;

  // integer hexadecimal constant
  char test8 = 0x20;   // 0x or 0X and then 1 or more hexadecimal digits
  char test9 = 0X20;

  // universal-character-name
  char testA = '\u0020';      // \u & 4 hex digits
  char testB = '\U00000020';  // \U & 8 hex digits

  // character constant
  char testC = ' ';   // When the character set is ASCII

非常感谢您的澄清,但我无法更改转义八进制序列。它是我正在解析的字符串的一部分。我必须以某种方式对其进行转换以获得十进制表示。这可能吗?@user3482407
chartest='\032'和“它是我正在解析的字符串的一部分。”这意味着编译器解析
char test='\032'时,您就是编译器。建议修改帖子以展示你真正在做什么。