你们好,最近小未来发现有诸多的小伙伴们对于二进制补码转换十进制计算器,二进制补码这个问题都颇为感兴趣的,今天小活为大家梳理了下,一起往下看看吧。
(资料图)
1、之前写了一点十进制和二进制补码之间的转换,但是忘了写另一个重要的情况,就是二进制补码已知时,求对应的十进制数。现在补充到这里,形成一个完整的知识点。
2、现在我们从两个方面来考虑:一是已知二进制以0二进制补码开头,求对应的十进制值;二、已知二进制以1二进制补码开头,求对应的十进制值。
3、1.已知的二进制数从0二进制补码开始:
4、也就是说,这个左边的最高位二进制补码从0开始。最高位数为0,表示该数字在二进制补码中为正。正二进制补码是与十进制最简单的对应。
5、直接按照二进制和十进制对应的转换规则就可以了(这里需要了解二进制和十进制转换的知识)。
6、比如二进制补码: 001110,011010,011,01010,0110010,找到对应的十进制。
7、001110:( 0)*(2^5) 0*(2^4) 1*(2^3) 1*(2^2) 1*(2^1) 0*(2^0)=14;
8、011010:( 0)*(2^5) 1*(2^4) 1*(2^3) 0*(2^2) 1*(2^1) 0*(2^0)=26;
9、011:( 0)*(2^2) 1*(2^1) 1*(2^0)=3;
10、01010:( 0)*(2^4) 1*(2^3) 0*(2^2) 1*(2^1) 0*(2^0)=10;
11、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;
12、二、已知二进制以1二进制补码开头:
13、也就是说,这个左边的最高位二进制补码从1开始。最高位数为0,表示数字在二进制补码中为负数。负数二进制补码和小数的对应关系略复杂。
14、有三种方法可以找到它对应的十进制数。
15、第一种方法是这样的。既然知道数是负数,就可以直接舍弃左边最高位的符号位,然后将剩余二进制的每一位取反,再取反后的值1,得到的数就是这个负数的绝对值二进制补码。
16、我们只需要根据二进制和十进制的对应转换规则直接转换这个绝对值,在转换后的十进制前面加一个负号,就得到这个负十进制数二进制补码。
17、比如二进制补码: 101110,111010,111,1010,1110010,找到对应的十进制。
18、101110去符号位01110取反10001加一10010十进制18加负号-18;
19、111010去符号位11010取反00101加一00110十进制6加负号-6;
20、111去符号位11取反00加一01十进制1加负号-1;
21、1010去符号位010取反101加一110十进制6加负号-6;
22、11110010去符号位1110010取反0001101加一0001110十进制14加负号-14;
23、 第二种方法与第一个方法十分相似,直接把整个负的二进制补码的每一位都取反,然后取反以后的数值+1,得到的数就是此负的二进制补码的绝对值了,
24、我们直接把此绝对值按照二进制与十进制的对应转换法则转换就行了,在转换得到的十进制前面加一个负号,于是我们就得到了这负的二进制补码对应的十进制数。
25、例如:已知二进制补码:101110、111010、111、1010、11110010,求与之对应十进制。
26、101110取反010001加一010010十进制18加负号-18;
27、111010取反000101加一000110十进制6加负号-6;
28、111取反000加一001十进制1加负号-1;
29、1010取反0101加一0110十进制6加负号-6;
30、11110010取反00001101加一00001110十进制14加负号-14;
31、第三种方法更是直接,方法和处理正的二进制补码一样,唯一的区别是正数以0开头,负数以1开头,我们把(+0)改成(-1)便可,这里不赘述,直接上例子,一看便知。
32、例如:已知二进制补码:101110、111010、111、11010、11110010,求与之对应十进制。
33、101110:(-1)*(2^5) + 0*(2^4) + 1*(2^3) + 1*(2^2) + 1*(2^1) + 0*(2^0)=-18;
34、111010:(-1)*(2^5) + 1*(2^4) + 1*(2^3) + 0*(2^2) + 1*(2^1) + 0*(2^0)=-6;
35、111:(-1)*(2^2) +1*(2^1) + 1*(2^0)=-1;
36、11010:(-1)*(2^4) + 1*(2^3) + 0*(2^2) + 1*(2^1) + 0*(2^0)=-6;
37、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;
38、 哎呀,猛地一看时间,吓我一跳,时间已然来到了00:23!哎,曾经无数次发誓要早睡,结果每天晚上都要到这个时候,真搜不了我自己,不扯了!
以上就是二进制补码这篇文章的一些介绍,希望对大家有所帮助。