红颜世家、 发表于 2015-11-14 10:44

【转载】八进制和十六进制

除了二进制,编程中也经常使用八进制和十六进制。

八进制有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


http://c.biancheng.net/cpp/uploads/allimg/150302/1-1503020U952962.png

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


http://c.biancheng.net/cpp/uploads/allimg/150302/1-1503020Z940a2.png
如果你有兴趣了解不同进制之间是如何转换的,请猛击:进制之间的转换

xpjmeise 发表于 2015-12-5 14:21

非常好的教程   给力非常好的教程   给力

tyhjrwx2015 发表于 2016-5-23 21:10

进制的基础入门,对于初学者还是挺有用的
页: [1]
查看完整版本: 【转载】八进制和十六进制