C语言小问题

第一:-617的八进制(补码)为什么是176627
第二:C='\101'代表什么,麻烦说详细点
谢谢!
'\101',能再说细一点吗
怎么知道它是代表八进制的还是十进制的还是十六进制的?能写下几个例子吗?

\ddd(三个d代表八进制数符)表示1—3位八进制数所代表的字符,此题\101中的101转换为十六进制为41,是字符'A';
\xdd(x说明dd是十六进制数)表示1-2十六进制数所代表的字符
-617转换成二进制是-1001101001,注意这里这个数在机器里必须用16位来表示,最高位为符号位,于是有1000001001101001,转换为补码为1111110110010111转换为八进制时高位补2个0,则为176627
温馨提示:答案为网友推荐,仅供参考
第1个回答  2008-02-23
-671的二进制补码(2字节)是1111110110010111,转换为八进制就是176627

C='\101'这是用3位八进制转义序列表示的字符,101转换为十进制就是65,所以C中存储是实际上是字符 'A'

******************************************

谁说 \101 是十六进制呀?这是八进制转义序列!请按八进制对待。

\x开头的才是十六进制转义序列!

转义字符可以是1~3位八进制数字,例如:\027,\27
这就是两个八进制转义序列,具体的值,可以通过ASCII码得到,27转换为十进制是23,所以\027或者\27就代表ASCII码是23的字符。

以\x开头的是十六进制转义序列,后面跟在0~7F之间的数字。本回答被提问者采纳
相似回答