假定编译器规定int 和short 类型的长度为32 位和16 位,执行下列C 语言语句后,x 和y 对应的机器数为( ) 。
unsigned short x = 32768; unsigned int y = x;
A. 8000H,FFFF8000H B. 7FFFH,00007FFFH
C. 7FFFH,FFFF7FFFH D. 8000H,00008000H
根据题目中 int 和 short...
用户登录可进行刷题及查看答案
根据题目中 int 和 short 的长度规定,分析如下:
变量 x 的赋值: unsigned short x = 32768;
unsigned short为 16 位,范围 0~65535。
32768 的二进制表示为1 0000 0000 0000 0000(17 位)。
截断为 16 位后得到1000 0000 0000 0000,即0x8000。
变量 y 的赋值: unsigned int y = x;
unsigned int为 32 位,需将 16 位的x零扩展到 32 位。
x的 16 位值0x8000扩展后为0000 0000 0000 0000 1000 0000 0000 0000,即0x00008000。
答案:D. 8000H,00008000H
登录后提交答案
暂无评论,来抢沙发