首页 > 代码库 > C语言博客(5)编程基础之怎样理解八进制和十六进制?

C语言博客(5)编程基础之怎样理解八进制和十六进制?

在C语言的学习编程过程中,除了二进制,编程中也经常使用八进制和十六进制。这些也同样是编程基础的教学,要想成为C语言大神,这是一定要了解清楚的。


八进制有0~7共8个数字,基数为8,逢八进一,借一当八;十六进制中,用A来表示10,B表示11,C表示12,D表示13,E表示14,F表示15,因此有0~F共16个数字,基数为16,逢16进1,借1当16。例如:

  • 八进制 3072 = 3×83 + 0×82 + 7×81 + 2×80 = 1536 + 0 + 56 + 2 = 1594
  • 十六进制 E3F9 = 14×163 + 3×162 + 15×161 + 9×160 = 57344 + 768 + 240 + 9 = 58361

 

二进制、八进制、十进制、十六进制的对应关系
十进制二进制八进制十六进制十进制二进制八进制十六进制
0 0 0 0 10 1010 12 A
1 1 1 1 11 1011 13 B
2 10 2 2 12 1100 14 C
3 11 3 3 13 1101 15 D
4 100 4 4 14 1110 16 E
5 101 5 5 15 1111 17 F
6 110 6 6 16 10000 20 10
7 111 7 7 17 10001 21 11
8 1000 10 8 18 10010 22 12
9 1001 11 9 19 10011 23 13


在C语言中,八进制通常以“0”开头(注意是数字 0,而不是字母 o),例如 0307;十六进制通常以“0x”或“0X”开头(不区分大小写),例如 0xE27 或 0X89F。

下面请看八进制和十六进制加法运算的两个例子。

 

1) 八进制加法:0107 + 0274 = 0403

技术分享
图1:八进制加法运算


2) 十六进制加法:0XA2B + 0X276 = 0XCA1

技术分享
图2:十六进制加法运算
 
这是面向普通人群的编程基础教学,我每次会在这个C语言博客里更新一些初学者需要的编程基础
下一篇我们要介绍进制之间的转换问题,敬请期待!

C语言博客(5)编程基础之怎样理解八进制和十六进制?