发布网友
共3个回答
热心网友
答案是D.-1.
int其实为unsigned int x=65535
然后呢
转成2进制呗,16个1咯
再然后呢
你又要变成整型,计算机咋办呢??
求补码呗
补码怎么求?
取反加1呗,怎么取反呢
第一个1是不变的,然后后面15个都变成了0,然后加1
就变成了1,14个0,1
再然后计算机输出
因为你的是无符号的,所以只给你15位,后面的15位,就是14个0,跟1
然后第1位干嘛去了呢?他变成横的1了,就这样,变成-1~~
热心网友
这个题要分两种情况考虑。在16编译系统(如TC)中,结果是-1;在32编译系统(如VC)中,结果是65535。追问能解释下原因吗?
追答16位进制与32位二进制表示的范围不同。65535存储在16位的存储器中,溢出,刚好是-1的补码。存储在32位的存储器中不溢出,原样输出。
热心网友
A 没越界追问怎么谭浩强编的那本c语言书上说int是signed int