C语言基础(3)-二进制、八进制、十六进制

1.二进制

一个位只能表示0或者1两种状态,简称bit(比特)

一个字节为8个二进制数,称为8位,简称BYTE(字节)

一个字为2个字节,简称WORD.

两个字为双字,简称DWORD,占32个bit

大写的B代表字节,小写的b代表比特

2.八进制

八进制为以8为基数的数制系统,C语言当中0开头表示八进制,0666;八进制数为逢八进1,即:

 

0 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17 20

在C语言中不能直接表达二进制数,但可以表达八进制数,010就是十进制的8,012就是十进制的10。

 

3.十六进制

十六进制值16为基数的数制系统,在C语言中以0x开头表示十六进制。

 

4.十进制转二进制、八进制、十六进制的方法

十进制数转化8进制的方法:

用十进制数除以8,分别取商和余数,当商为0的时候,将余数倒着数就是转化后的结果。

 

十进制数转化16进制的方法:

 

 

用十进制数除以16,分别取商和余数,当商为0的时候,将余数倒着数就是转化后的结果。

 

十进制数转化2进制的方法:

用十进制数除以2,分别取商和余数,当商为0的时候,将余数倒着数就是转化后的结果。

示例:将十进制数的23转换为2进制数

            商           余数

      2 |___23____  1

     2 |___11____  1 

     2 |____5___  1

     2  |____2____ 0

     2  |____1____1

         0       

将余数反转,为10111,即:23

 

5.其它进制转换

十进制 八进制 二进制 十六进制
0 0 000 0
1 1 001 1
2 2 010 2
3 3 011 3
4 4 100 4
5 5 101 5
6 6 110 6
7 7 111 7
8 10 1000 8
9 11 1001 9
10 12 1010 a
11 13 1011 b
12 14 1100 c
13 15 1101 d
14 16 1110 e
15 17 1111 f
16 20 10000 10
17 21 10001 11

二进制转八进制

010 101 111 010 101 111 101 010 101 111 二进制(每三位分割,不足三位补0)
2      5     7     2    5    7     5    2     5     7   八进制

八进制转二进制

032

011 010  即 11010

二进制转十六进制

0111 1100 0001 1011 1111 0111   二进制(每四位分割,不足四位补0)
7        c       1        b      f      7      十六进制

即:0x7c1bf7

十六进制转二进制

0x4dafe1                                     十六进制
0100 1101 1010 1111 1110 0001   二进制

原文地址:https://www.cnblogs.com/yongdaimi/p/6228887.html