c++二进制转十进制_二进制,八进制,十进制,十六进制转换详解~

点 击 上 方 蓝 字 关 注 我 们 哦 ^-^

本文思维导图:

433176ddd8f92656d7b3ea0abc8de30b.png

1.数制:用一组固定的数字和一套统一的规则来表示数目的方法称为数制。

  • 进位计数制的要素:

    ①、数码:用来表示进制数的元素。

                               二进制:0,1。

                               八进制:0,1,2,3,4,5,6,7

                               十进制:0,1,2,3,4,5,6,7,8,9。

                               十六进制:0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F

    ②、基数:数码的个数。比如2进制数的基数为2。N进制数的基数为N。

    ③、*位权:数制中每一固定位置对应的单位值称为位权。为,对于 N进制数,整数部分第 i位的位权为N^(i-1),而小数部分第j位的位权为N^-j。

数制/N

二进制

八进制

十进制

十六进制

数码

0,1

0,1,2,3,4,5,6,7

0,1,2,3,4,5,6,7,8,9

0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F

基数

2

8

10

16

规则

逢二进一

逢八进一

逢十进一

逢十六进一

2^i-1

8^i-1

10^i-1

16^i-1

2.进制转换

  • 可对照表进行转换(缺点:容易记错)

十进制

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

二进制

0

1

10

11

100

101

110

111

1000

1001

1010

1011

1100

1101

1110

1111

10000

八进制

0

1

2

3

4

5

6

7

10

11

12

13

14

15

16

17

20

十六进制

0

1

2

3

4

5

6

7

8

9

A

B

C

D

E

F

10

  • N进制···>十进制(按权展开)

        1.二进制···>十进制

        转换原则:让二进制各位上的系数乘以对应的权,然后求其和              11001.11₂ = 1×2^4 + 1×2^3 + 0×2^2 + 0×2^1 + 0×2^0 + 1×2^-1 + 1×2^-2 = 25.7510

         整数:11001 = 1×2^4 + 1×2^3 + 0×2^2 + 0×2^1 + 0×2^0(以小数点为界逐步向左排序)

          小数:0.11= 1×2^-1 + 1×2^-2 (以小数点为界逐步向右排序

)

        2.八进制···>十进制

        转换原则:让八进制各位上的系数乘以对应的权,然后求其和。

        156.48 = 1×8^2 + 5×8^1 + 6×8^0 + 4×8^-1 = 110.5

        整数:156 = 1×8^2 + 5×8^1 + 6×8^0

        小数:0.4 = 4×8^-1

        3.十六进制···>十进制

        转换原则:让十六进制各位上的系数乘以对应的权,然后求其和。

        12C16= 1×16^2+2×16^1+C×16^0 = 30010 (C=12)

        总结:

              转换原则: 让N进制各位上的系数乘以对应的权(第i位的位权就为  N^i- 1) ,然后求和                  

              设向右为正方向,所以表示为:整数逆序,小数顺序

              注意不要超出数码范围^-^

  • 十进制···>N进制

       整数:除N取余逆排序         小数:乘N取整顺排序

       以十进制数463.625转换为十进制数为例

aedb59f533a699dcb9b41146f5ce5d67.png

   1.十进制···>二进制

   46.63510 = 101110.10102

bd8e29900e09d066d1dca3cb1d896c29.png

    2.十进制···>八进制(自己根据上述例题尝试算一下)

      (255)10= (377)8

       3.十进制···>十六进制(自己根据上述例题尝试算一下)

       (255)10 =(ff)16。

**************************************************************************

  • 八进制--->二进制

        2268 = (10010110)2

        1.  方法一:除2取余

        (一位八进制数可转换为三位二进制数,整数不够三位在左侧补0,小数在右侧补0)

bc712c2c1daeb2c7a07a705314414ae3.png

        2.  方法二:八进制···>十进制···>二进制

             2268 = 2×8^2 + 2×8^1 + 6×8^0 = 15010

             15010 = 100101102

  • 二进制--->八进制(8=2^3)

       (一位八进制数可转换为三位二进制数,整数不够三位在左侧补0,小数在右侧补0)

      100101102 = (  226 )8

      10010110=010010110=0×2^2+1×2^1+0×2^0+0×2^2+1×2^1

                                          =+0×2^0+1×2^2+1×2^1+0×2^0

6d38ad475cdec340bf337929b5e65cb2.png

  • 十六进制--->二进制

        2C 16= 1011002

        1.方法一:四合一(16=2^4)

       (一位十六进制数可转换为四位二进制数,整数不够四位在左侧补0,小数在右侧补0)

6fc42ac6d1fd59dd0667cdfd762badc9.png

        2. 方法二:十六进制···>十进制···>二进制

        2C16 = 2×16^1 + 12×16^0 = 4410

        4410 = 1011002

  • 二进制--->十六进制

       1011002=1×2^1+(1×2^3+1×2^2)=2C16

5e4569897049f2162118a2b6651867b8.png

  • 十六进制与八进制之间的转换

        方法一:十六进制二进制八进制

        方法二:十六进制十进制八进制

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值