问题描述:
unsigned short A = 10; printf("~A = %u\n",A); char c=128; printf("c=%d\n",c); 输出多少?
第一题,A =0xfffffff5,int值 为-11,但输出的是uint.所以输出4294967285 第二题,c=0x10,输出的是int,最高位为1,是负数,所以它的值就是0x00的补码就是128,所以输出-128.这两道题都是在考察二进制向int或uint转换时的最高位处理.A =0xfffffff5,还有为什么c=0x10,不应该是c=0x08吗,不好意思各位大侠,小弟的分数用完了.
第一题,A =0xfffffff5,int值 为-11,但输出的是uint.所以输出4294967285 第二题,c=0x10,输出的是int,最高位为1,是负数,所以它的值就是0x00的补码就是128,所以输出-128.这两道题都是在考察二进制向int或uint转换时的最高位处理.A =0xfffffff5,还有为什么c=0x10,不应该是c=0x08吗,不好意思各位大侠,小弟的分数用完了.
问题解答:
我来补答展开全文阅读