奔腾处理器中的一个16位带符号整数,如果它的16进制表明是(FFF0)16那么它的实际数值是多少?
的有关信息介绍如下:最高位为1时表示正数,最大的为0xEFF0,即61424
65520 1111111111110000,取反加1,为000F,即16,也就是-16
转换为二进制1111 1111 1111 0000,
第一位是符号位
因为处理器中是补码形式
1000 0000 0001 0000
因此是-16
-1 - 15 = -16
先取反但符号位不变即:1000 0000 0000 1111 然后加1得:1000 000 0001 0000 即2的4次方为16 又因为符号位为1所以是负的16.(-16)
以上是我自己想的,因网上找不到合理的解释就想到补码和原码之间的关系,答案是一样的,但过程不知道是不是这样,我也是专转本的,不过是大三(现在)转的,希望对你有用。
带符号整数用的是补码表示法,第一位符号位,0代表正数,1代表负数,剩下的就是数了。如果符号位是0,没有问题,剩下的十五位直接转成十进制就是结果;如果符号位是1,那么把剩下的十五位取反,然后转成十进制加一,再加个负号就行了。
FFF0H转化为二进制是111111110000由于是机器码都是用补码表示的,所以把它们取反加一,应该是-16