为什么是-14
结果为什么是-14#include<stdio.h>
int main()
{char c;
c=0362;
printf("%d\n",c);
return 0;
} 0362是八进制数,然后换成十进制是214,由于char是有符号的,具体是怎么表示的,取决于符号位和负数补码的表示方法。最后输出结果-14 char只能存八位二进制 也就是带符号的-128 到 127
类似于有符号的int只能存21.43亿 362(八进制) = 242(十进制) ==11110010
符号位为 1 负数
%d 打印有符号数 取反加1 (就是其绝对值) --> 01110== 14
所以为 -14 你定义的c是char型,char只占一个字节,而你最后打印的%d对应的是整形变量
页:
[1]