已知二进制补码,求与之对应十进制数。
已知二进制补码求对应的十进制――方法/步骤已知二进制补码求对应的十进制 1、
我之前写了一点关于十进制与二进制补码的转换,但由于当时的疏漏,忘了写另外一种重要的情况,就是当已知二进制补码的时候,求与之对应的十进制数。现在补充在此,形成一个完整的知识点。
已知二进制补码求对应的十进制 2、
现在我们将从两个方面来考虑:一是已知的二进制是以0开头的二进制补码,求与之对应的十进制数值;二是已知的二进制是以1开头的二进制补码,求与之对应的十进制数值。
已知二进制补码求对应的十进制 3、
一、已知的二进制是以0开头的二进制补码:
也就是说这个二进制补码的左边最高位是以0开头的。最高位是0,在在二进制补码中表示该数是正数。而正的二进制补码与十进制的对应关系是最简单的,直接按照二进制与十进制的对应转换法则转换就行了(这里需要你知道二进制与十进制相互转换的知识)。
已知二进制补码求对应的十进制 4、
例如:已知二进制补码:001110、011010、011、01010、01110010,求与之对应十进制。
001110:(+0)*(2^5) + 0*(2^4) + 1*(2^3) + 1*(2^2) + 1*(2^1) + 0*(2^0) = 14;
011010::(+0)*(2^5) + 1*(2^4) + 1*(2^3) + 0*(2^2) + 1*(2^1) + 0*(2^0) = 26;
011:(+0)*(2^2) +1*(2^1) + 1*(2^0) = 3;
01010:(+0)*(2^4) + 1*(2^3) + 0*(2^2) + 1*(2^1) + 0*(2^0) = 10;
01110010:(+0)*(2^7) + 1*(2^6) +1*(2^5) + 1*(2^4) + 0*(2^3) + 0*(2^2) + 1*(2^1) + 0*(2^0) = 114;
已知二进制补码求对应的十进制 5、
二、已知的二进制是以1开头的二进制补码:
也就是说这个二进制补码的左边最高位是以1开头的。最高位是0,在在二进制补码中表示该数是负数。而负的二进制补码与十进制的对应关系是稍微复杂的,有三种方法来求其对应的十进制数。
已知二进制补码求对应的十进制 6、
第一种方法是这样的,既然知道该数是负的,我们可以直接把左边最高位的符号位抛弃,然后把剩下的二进制每一位都取反,然后取反以后的数值+1,得到的数就是此负的二进制补码的绝对值了,我们直接把此绝对值按照二进制与十进制的对应转换法则转换就行了,在转换得到的十进制前面加一个负号,于是我们就得到了这负的二进制补码对应的十进制数。
已知二进制补码求对应的十进制 7、
例如:已知二进制补码:101110、111010、111、1010、11110010,求与之对应十进制。
101110去符号位01110取反10001加一10010十进制18加负号-18;
111010去符号位11010取反00101加一00110十进制6加负号-6;
111去符号位11取反00加一01十进制1加负号-1;
1010去符号位010取反101加一110十进制6加负号-6;
11110010去符号位1110010取反0001101加一0001110十进制14加负号-14;
已知二进制补码求对应的十进制 8、
第二种方法与第一个方法十分相似,直接把整个负的二进制补码的每一位都取反,然后取反以后的数值+1,得到的数就是此负的二进制补码的绝对值了,我们直接把此绝对值按照二进制与十进制的对应转换法则转换就行了,在转换得到的十进制前面加一个负号,于是我们就得到了这负的二进制补码对应的十进制数。
已知二进制补码求对应的十进制 9、
例如:已知二进制补码:101110、111010、111、1010、11110010,求与之对应十进制。
101110取反010001加一010010十进制18加负号-18;
111010取反000101加一000110十进制6加负号-6;
111取反000加一001十进制1加负号-1;
1010取反0101加一0110十进制6加负号-6;
11110010取反00001101加一00001110十进制14加负号-14;
已知二进制补码求对应的十进制 10、
第三种方法更是直接,方法和处理正的二进制补码一样,唯一的区别是正数以0开头,负数以1开头,我们把(+0)改成(-1)便可,这里不赘述,直接上例子,一看便知。
已知二进制补码求对应的十进制 11、
例如:已知二进制补码:101110、111010、111、11010、11110010,求与之对应十进制。
101110:(-1)*(2^5) + 0*(2^4) + 1*(2^3) + 1*(2^2) + 1*(2^1) + 0*(2^0) = -18;
111010::(-1)*(2^5) + 1*(2^4) + 1*(2^3) + 0*(2^2) + 1*(2^1) + 0*(2^0) = -6;
111:(-1)*(2^2) +1*(2^1) + 1*(2^0) = -1;
11010:(-1)*(2^4) + 1*(2^3) + 0*(2^2) + 1*(2^1) + 0*(2^0) = -6;
11110010:(-1)*(2^7) + 1*(2^6) +1*(2^5) + 1*(2^4) + 0*(2^3) + 0*(2^2) + 1*(2^1) + 0*(2^0) = -14;
已知二进制补码求对应的十进制 12、
哎呀,猛地一看时间,吓我一跳,时间已然来到了00:23!!哎,曾经无数次发誓要早睡,结果每天晚上都要到这个时候,真搜不了我自己,不扯了!