C “多少钱?”\377\377\377\377\020\020\006“;用十六进制?

C “多少钱?”\377\377\377\377\020\020\006“;用十六进制?,c,C,用十六进制表示的“\377\377\377\020\020\006”是多少?“\”在这里是什么意思?我知道“0x”表示十六进制这看起来像是一个八进制的七个字节的序列,即base-8表示法。在二进制中,它们看起来是这样的(空格是为了清楚起见) 翻译成十六进制,这将是 FF FF FF FF 10 10 06 由于这是一个字符串文字,它的末尾有一个空终止符,因此它表示的完整字节序列是FF FF FF FF 10 0

用十六进制表示的
“\377\377\377\020\020\006”
是多少?
“\”
在这里是什么意思?我知道“0x”表示十六进制

这看起来像是一个八进制的七个字节的序列,即base-8表示法。在二进制中,它们看起来是这样的(空格是为了清楚起见)

翻译成十六进制,这将是

      FF       FF       FF       FF       10       10       06
由于这是一个字符串文字,它的末尾有一个空终止符,因此它表示的完整字节序列是
FF FF FF FF 10 06 00

八进制很容易转换为二进制,因为您只需要记住下面的八元素表:

0 - 000
1 - 001
2 - 010
3 - 011
4 - 100
5 - 101
6 - 110
7 - 111
转换是用表中的三位序列对8进制数字进行机械替换。

“\377\377\377\020\020\006”
是一个具有八进制常数的字符串。
\
是转义序列的开始,如果后面跟有一个有效的八进制数字,则该数字加上后面最多两个数字,表示它由给定的八进制代码表示的下一个字节

根据本规范第6.4.4.4节:

八进制转义序列:
\八进制数字
\八进制数字八进制数字
\八进制数字八进制数字八进制数字

在八进制转义序列中紧跟反斜杠的八进制数字 被视为单个字符构造的一部分 对于整型字符常量或单个宽度 宽字符常量的字符。数值 这样形成的八进制整数指定所需字符的值 或宽字符

取八进制:

377 377 377 377 020 020 006
并将其转换为二进制:

11 111 111  11 111 111  11 111 111  11 111 111  00 010 000  00 010 000  00 000 110
 1111 1111   1111 1111   1111 1111   1111 1111   0001 0000   0001 0000   0000 0110
给出了以下十六进制:

FF FF FF FF 10 10 06
因此,您还可以使用十六进制转义序列将上述字符串定义为:

"\xFF\xFF\xFF\xFF\x10\x10\x06"

还要注意的是,由于这是一个字符串常量,因此末尾还有一个空字节,因此总共有8个字节。

这些是八进制(以8为基数)的数字。它们是从哪里获得的?。或ASCIIstring@Joachim是的,你说得对@chux你是对的,结尾有空终止符!谢谢。
"\xFF\xFF\xFF\xFF\x10\x10\x06"