]求助 char a=1025;printf("%d",a); 输出结果为什么是1.????
求助 char a=1025;printf("%d",a); 输出结果为什么是1.????我是这样想的
用char定义char a=65和char a=A是等效的当输出为printf("%d",a); 输出65
当输出为printf("%c",a); 输出A
这是asc码
至于等于1的问题,楼主可以试下你原来程序,a=0~127,a为本身
a=128,则输出a=-128
a=129,则输出a=-127
a=130,则输出a=-126
依次类推,不知道我说明白没有,大家共同努力呀!!! 下面一节是补码? 1025 mod 256 大概要是比那个大的话就循环了 就像楼上说的~~~不过哪高手能给一个精确的解释
这样的
1025 == 0x401 二进制为 0100 0000 0001char 类用的变量只有8为 0x401已经使变量的值溢出了, 取后面8位
所以说输出 1 楼上解释已经很清楚了!
页:
[1]
