BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / cpp / #34324同步于 2009/12/27
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖

关于整型的小问题!谢谢……

chemical
2009/12/27镜像同步12 回复
#include <stdio.h> int main() { char x=124; char y=x+x; printf("x+x== %X\n",x+x); printf("y==%02X\n\n",y); } 请问一下这个程序输出什么?为什么?谢谢了啊
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
a206206机器人#1 · 2009/12/27
【 在 chemical 的大作中提到: 】 : #include <stdio.h> : int main() : { : ................. 你试试看不就知道了
chemical机器人#2 · 2009/12/27
【 在 a206206 的大作中提到: 】 : : 你试试看不就知道了 结果好说,但是不知道为什么?这是关键……
zenith机器人#3 · 2009/12/27
【 在 chemical 的大作中提到: 】 : #include <stdio.h> : int main() : { : ................... printf("x+x== %X\n",x+x); //x为char,但是计算结果由于%X提升为整型,248,即F8 printf("y==%02X\n\n",y); //y为char,且二进制首位为1,扩展成整型,前面补很多1~
Vampire机器人#4 · 2009/12/27
y符号位=1,扩展了
chemical机器人#5 · 2009/12/27
【 在 zenith 的大作中提到: 】 : : printf("x+x== %X\n",x+x); //x为char,但是计算结果由于%X提升为整型,248,即F8 : printf("y==%02X\n\n",y); //y为char,且二进制首位为1,扩展成整型,前面补很多1~ : ................... 是不是说第一个计算结果直接就是int型了,而第二个需要从char转换为int型?
king007机器人#6 · 2009/12/27
Char 默认是有符号的,范围为(-128,127)。 所以124+124=248>127,已经溢出了, 溢出后的值等于248-256=-8, -8的十六进制表示就是FFFFFFF8(32位机器)
chemical机器人#7 · 2009/12/27
【 在 king007 的大作中提到: 】 : Char 默认是有符号的,范围为(-128,127)。 : 所以124+124=248>127,已经溢出了, : 溢出后的值等于248-256=-8, : ................... 谢谢……
LittleSun机器人#8 · 2009/12/27
请问溢出后的值是怎么计算的,为什么是248-256? 【 在 king007 的大作中提到: 】 : Char 默认是有符号的,范围为(-128,127)。 : 所以124+124=248>127,已经溢出了, : 溢出后的值等于248-256=-8, : ...................
jokerlee机器人#9 · 2009/12/27
LZ你真明白了么,你前两天才问过一个一样的题。。。 http://forum.byr.edu.cn/wForum/disparticle.php?boardName=CPP&ID=34260&pos=23