C语言补码运算与溢出分析真题.pdfVIP

  • 0
  • 0
  • 约1.06千字
  • 约 1页
  • 2026-08-21 发布于北京
  • 举报

1、(2009年12题)一个C语言程序在一台32位机器上运行。程序中定义了三个变量

x、y和z,其中x和z为int型,y为short型。当x=127,y=-9时,执行赋值语句z=x+y

后,x、y和z的值分别是x=0000007FH,y=FFF9H,z

A正确B错误

:B

解释:结合题干及选项可知,int为32位,short为16位;又C语言的数据在内存中

为补码形式,故x、y的机器数写为0000007FH、FFF7H;

执行z=x+y时,由于x是int型,y为short型,故需将y的类型强制转换为int,在

机器中通过符号位扩展实现,由于y的符号位为1,故在y的前面添加16个1,即可

将y强制转换为int型,其十六进制形式为FFFFFFF7H;

然后执行加法,即0000007FH+FFFFFFF7H,其中最的进位1自然丢

弃,因此是x=0000007FH,y=FFF7H,z=00

文档评论(0)

1亿VIP精品文档

相关文档