二进制与十进制互相转换

转载自:https://jingyan.baidu.com/article/8ebacdf0133c2f49f65cd5d0.html
和:
https://jingyan.baidu.com/article/a501d80c6b3057ec630f5e21.html

正数情况下

十进制转二进制

此处以18为例讲解下如何求解它的二进制,及由二进制转换回十进制。
二进制与十进制互相转换_第1张图片

  1. 将18进行除2取余,将余数写在后面
    二进制与十进制互相转换_第2张图片

  2. 将取得的余数排成一行。
    二进制与十进制互相转换_第3张图片

  3. 将余数从前往后排徐,写的数字列即是二进制。
    二进制与十进制互相转换_第4张图片

二进制转十进制

至于二进制的转换,可以看下图,10010,一共6位,第一位对应的次数是5,依次类推,最后一位对应的次数是0,分别按图上进行加法运算即可。
二进制与十进制互相转换_第5张图片

负数情况下

十进制转二进制

二进制里只有0和1两个数,没有符号及其它数字。

  1. 接下来,以-9为例,演示如何将其转化为二进制的数。

二进制与十进制互相转换_第6张图片

  1. 利用“除2取余法,余数逆序排列”,得到原码。

    即将-9的绝对值9除于2,取每次的余数,逆序排列后得到原码为:0000 1001(以8位为例)。
    二进制与十进制互相转换_第7张图片

  2. 将上一步骤得到的原码取反(1取0,0取1),得到反码。
    对应反码为:11110110。
    二进制与十进制互相转换_第8张图片

  3. 在反码的基础上,加1得到补码。 对应的补码为:11110111。 这就是我们要求的结果了。
    二进制与十进制互相转换_第9张图片

  4. 十进制负数转二进制方法总结如下:

    ①除2取余,逆序排列
    ②01互换,原码取反码
    ③反码+1,得补码

二进制转十进制

  1. 接下来,用逆向操作将二进制的负数转为十进制。 同样以8位二进制数为例,将11101101转换成十进制。
    二进制与十进制互相转换_第10张图片

  2. 将二进制数减1,得到:11101100。
    二进制与十进制互相转换_第11张图片

  3. 将减1后的代码取反操作,得到:00010011。
    二进制与十进制互相转换_第12张图片

  4. 将取反后的代码换算成十进制,得到19。
    二进制与十进制互相转换_第13张图片

注意,在计算结果19的基础上要加上-号,得到-19才是我们要求的最终结果!

Tips:

1、二进制转十进制跟十进制转二进制互为逆操作;

2、二进制由于只有0和1,没有符号,其实首位即代表其符号;

你可能感兴趣的:(java)