关于2011的一个计算机考研的问题。假设你在一台8位计算机上运行下面的C程序段:细节如下
感觉你根本不懂C语言中数据的存储原理,整个计算过程都跑偏了。
x是一个八位无符号数,在内存中存储为0x86;八位有符号数m强制赋值时,不经转换直接赋值给m,0x86按八位补码等价于(-122)10;
同样,y是一个八位无符号数,在内存中存储为0xE6;八位有符号数n强制赋值时也是硬插。对于n,根据八位补码,0xE6相当于(-10)10。
你说“绝对值小的数减去绝对值大的数,理论上应该是正的”,但问题是m的绝对值远大于n的绝对值...