-123 32763 -65531存入二字节内存中,写出对应的十六进制机器码?
2个回答
展开全部
(-123)D=(1111 1111 1000 0101)B=0xFF85
(32763)D=(0111 1111 1111 1011)B=0x7FFB
因为2字节的内存空间存放的最大的负数是-32768,因此会发生内存溢出,我们可以强行
赋值,然后看输出什么,代码如下:
#include "stdio.h"
void main(void)
{
short a=-65531;
printf("%hd\n",a);
printf("%hu\n",a);
}
//运行结果
F:\c_work>a.exe
5
因此依据上面的输出结果,我们可以得出,在2字节的内存空间中实际存放的是数值5
因此,它的16进制是0x0005。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询