08 八进制和十六进制

来源:互联网 发布:怎么网络推广 编辑:程序博客网 时间:2024/04/30 08:41

C学习网:链接->C学习网

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

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

下面请看八进制和十六进制加法运算的两个例子。
这是选学内容,如果你只想了解八进制和十六进制,不希望深入研究它们的运算,请忽略这部分内容,不会影响后边的学习。
1) 八进制加法:0107 + 0274 = 0403


图1:八进制加法运算

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


图2:十六进制加法运算
如果你有兴趣了解不同进制之间是如何转换的,请猛击:进制之间的转换