单选题
有如下C语言程序段
short si=-32767;
unsigned Short usi=si;
执行上述两条语句后,usi的值为______。
【正确答案】
D
【答案解析】[解析] 结合题干及选项可知,short为16位。因C语言中的数据在内存中为补码表示形式,si对应的补码二进制表示为:1000 0000 0000 0001B,最前面的一位“1”为符号位,表示负数,即-32767。由signed型转化为等长unsigned型数据时,符号位成为数据的一部分,也就是说,负数转化为无符号数(即正数),其数值将发生变化。Usi对应的补码二进制表示与si的表示相同,但表示正数,为32769。