6") : printf("(题目标签: 笔试题,面试题,php面试题,java面试题,阿里巴巴面试题,腾讯面试题,小米面试题,区块链面试题,2015年,C/C++)"/>
经典指数          
原因
1091
浏览数
0
收藏数
 

下面代码输出什么 #include int main( ) {     unsigned int a = 6;     int b = -20;     (a + b > 6) ? printf(">6") : printf("<=6");     return 0; } 输出结果是 1

     举报   纠错  
 
切换
1 个答案
在内存中a的存储表示:(6的原码) 0000 0000  0000 0000  0000 0000  0000 0110 在内存中b的存储表示:(-20的补码) 1111 1111  1111 1111  1111 1111  1110 1100 两者相加:        1111 1111  1111 1111  1111 1111  1110 1100     + 0000 0000  0000 0000  0000 0000  0000 0110        1111 1111  1111 1111  1111 1111  1111 0010 结果为转换十进制为:4294967282 验证: int main() { unsigned int a = 6; int b = -20; (a + b > 4294967282) ? printf(">4294967282") : printf("<=4294967282"); printf("\n"); (a + b > 4294967281) ? printf(">4294967281") : printf("<=4294967281"); return 0; } 结果: <=4294967282 >4294967281 验证表明这样理解是没错的
 
切换
撰写答案
扫描后移动端查看本题