进制及转换

为啥要会进制转换?

  1. 提效
  2. 代码中的装逼最为致命

C语言中各进制声明及占位符

  • 二:程序中没有二进制数
  • 八:%o                                                        0开头,如int a = 010
  • 十:%d                                                        int  a =2
  • 十六:%x(小写输出) %X(大写输出)       0x开头,如int a =0x10

16以内各进制数

请死记硬背,可提高效率

十进制

二进制

八进制

十六进制

0

0

0

0

1

1

1

1

2

10

2

2

3

11

3

3

4

100

4

4

5

101

5

5

6

110

6

6

7

111

7

7

8

1000

10

8

9

1001

11

9

10

1010

12

A

11

1011

13

B

12

1100

14

C

13

1101

15

D

14

1110

16

E

15

1111

17

F

16

10000

20

10

十进制转二八十六进制

将十进制数每次除以n(n为2,8,16), 取出余数 按照结果倒叙依次获取结果
转二进制:
109:109/2=54余1      54/2=27余0   27/2=13余1    13/2=6余1   6/2=3余0    3/2=1余1    1/2=0余1    倒叙   1101101
转八进制、十六进制亦如是

二八十六进制转十进制

权值法:将各类型数的各个位数从0位开始乘以 (2,8,16) 的N(N为位置)幂 将各个位数的结果相加
二进制转:
10101: 2^4+0+2^2+2^0 =  21
八进制转:
2756 :  2*8^3 + 7*8^2 + 5*8^1 + 6*8^0 = 1518
十六进制转:
DA19 :    13*16^3 + 10*16^2 + 1*16^1 + 9*16^0 = 55833

八进制二进制互转

8进制最大数为7,也就是二进制中的111,三位最大数,这三位对应的值为4,2,1,所以八进制中每一位代表三位二进制数
八进制转二进制
3          5          6         7  
011    101      110     111
二进制转八进制
110  101  001  011  110  111  001  011
   6     5      1      3      6     7      1      3    

十六进制与二进制互转

十六进制最大数15,也就是1111,二进制的四位最大数,这四位对应8,4,2,1所以十六进制中每一位数代表四位二进制数
十六进制转二进制
A         B        C        D
1010   1011    1100   1101 
二进制转十六进制
0101  1101  1111   1010   0101  0001
5         D       F       A        5        1

十六进制与八进制互转:以二进制为中转

十六进制--->二进制---->八进制
八进制------>二进制----->十六进制
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值