奔腾处理器中的一个16位带符号整数,如果它的16进制表示是(FFF0)16那么它的实际数值是多少?

来源:百度知道 编辑:UC知道 时间:2024/05/26 14:17:16
我算的65520,但是答案是负的16,请为什么,问题出在哪里?请各位大虾指教!

最高位为1时表示正数,最大的为0xEFF0,即61424
65520 1111111111110000,取反加1,为000F,即16,也就是-16

带符号整数用的是补码表示法,第一位符号位,0代表正数,1代表负数,剩下的就是数了。如果符号位是0,没有问题,剩下的十五位直接转成十进制就是结果;如果符号位是1,那么把剩下的十五位取反,然后转成十进制加一,再加个负号就行了。