2012 组成原理 无符号数类型转换 选择题
第 13 题

假定编译器规定int 和 short 型长度分别为32位和16位,执行下列C 语言语句:

unsigned short x=65530;

unsigned int y=x;

得到y的机器数为()。

A.00007FFAH

B.0000 FFFAH

C.FFFF 7FFAH

D.FFFF FFFAH

[tag_link]

正确答案:B

将一个 16 位 unsigned short 转换成 32 位形式的 unsigned int,因为都是无符号数,新表示形式的高位用 0 填充。16 位无符号整数所能表示的最大值为 65 5 35,其十六进制表示为 FFFFH,故 x 的十六进制表示为 FFFFH - 5H = FFFAH,所以 y 的十六进制表示为 0000 FFFAH。