有以下程序main(){ unsigned int a; int b=-1; a=b; printf(\%u a);}程序运行后的输出结果是A.-

计算机 程序 已帮助 人

有以下程序main(){ unsigned int a; int b=-1; a=b; printf("%u",a);}程序运行后的输出结果是A.-1 B.65535 C.32767 D.-32768

热搜:以下不属于个人消费贷款的是A

答案解析

难度★★☆ 搜索
  • 参考答案:B当运算对象为不同的类型时,数据的转换方向为int→unsigned→long→double。本题程序中的变量b为int型,先要转换为unsigned型,int型变量的数值范围为-32768~32767,最高位为符号位,而unsigned所表示的数的范围为0~65535,它的最高位为数值位。由于内存中是以补码形式存储数据的,所以,整型的“-1”在内存中表示为 16个1,最高位的“1”表示符号负,将它转换为unsigned类型,即将原符号位表示符号的“1”看成数值,就可得到16个数值位1,即65535。