二进制,十进制,十六进制快速互转

1.十进制转二进制

    比如120这个数,转二进制,只需要一直除2取余数即可(最后结果为最高位),小数采用“乘2取整”:

120/2 = 60 余 0;
60/2 = 30 余 0;
30/2 = 15 余 0;
15/2 = 7 余 1;
7/2 = 3 余 1;
3/2 = 1 余 1;
1/2 = 0 余 1;
//最后结果为 111 1000,当然一般都是八位就是 0111 1000;

2.十进制转十六进制

    还是120,只需要一直除16取余数即可(最后结果为最高位):

120/16 = 7 余 8;
7/16 = 0 余 7;
//最后结果为 78;

3.二进制转十进制

    如0111 1000,需要N * 2^N:

0 * 2^0 + 
0 * 2^1 + 
0 * 2^2 + 
1 * 2^3 +
1 * 2^4 +
1 * 2^5 +
1 * 2^6 +
0 * 2^7 = 120

4.十六进制转十进制

    如78,需要N * 16^N:

8 * 16^0 + 
7 * 16^1 = 120

5.二进制转十六进制,十六进制转换二进制

    首先我们来看一个二进制数:1111

    你可能还要这样计算:1 * 2 ^0+ 1 * 2^1 + 1 * 2^2+ 1 * 2^3 = 1 * 1 + 1 * 2 + 1 * 4 + 1 * 8 = 15。

    然而,由于1111才4位,所以我们可以直接记住它每一位的权值,并且是从高位往低位记,:8、4、2、1。即,最高位的权值      为2= 8,然后依次是 2 = 4,=2, 2 = 1。

    记住8421,对于任意一个4位的二进制数,我们都可以很快算出它对应的10进制值。

    下面列出四位二进制数 xxxx 所有可能的值(中间略过部分)

    仅4位的2进制数 快速计算方法 十进制值 十六进值

    1111 = 8 + 4 + 2 + 1 = 15 F

    1110 = 8 + 4 + 2 + 0 = 14 E

    1101 = 8 + 4 + 0 + 1 = 13 D

    ....

    0001 = 0 + 0 + 0 + 1 = 1 1

    0000 = 0 + 0 + 0 + 0 = 0 0

二进制数要转换为十六进制,就是以4位一段,分别转换为十六进制。

    如(上行为二制数,下面为对应的十六进制):

    1111 1101 , 1010 0101 , 1001 1011

     F D , A 5 , 9 B

    反过来,当我们看到 FD时,如何迅速将它转换为二进制数呢?

    先转换F:

    看到F,我们需知道它是15(可能你还不熟悉A~F这五个数),然后15如何用8421凑呢?应该是8 + 4 + 2 + 1,所以四位全为     1 :1111。

   接着转换 D:

   看到D,知道它是13,13如何用8421凑呢?应该是:8 + 4 + 1,即:1101。

   所以,FD转换为二进制数,为: 1111 1101

   由于十六进制转换成二进制相当直接,所以,我们需要将一个十进制数转换成2进制数时,也可以先转换成16进制,然后再转       换成2进制。

    比如,十进制数 1234转换成二制数,如果要一直除以2,直接得到2进制数,需要计算较多次数。所以我们可以先除以16,得      到16进制数:

被除数

计算过程

余数

1234

1234/16

77

2

77

77/16

4

13 (D)

4

4/16

0

4

     结果16进制为: 0x4D2

    然后我们可直接写出0x4D2的二进制形式:0100 1101 0010。

    其中对映关系为:

    0100 -- 4

    1101 -- D

    0010 -- 2

    同样,如果一个二进制数很长,我们需要将它转换成10进制数时,除了前面学过的方法是,我们还可以先将这个二进制转换        成16进制,然后再转换为10进制。

    下面举例一个int类型的二进制数:

    01101101 11100101 10101111 00011011

    我们按四位一组转换为16进制: 6D E5 AF 1B

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值