目录:


一、八进制

----1.0、八进制转二进制(整数、小数)

----1.1、八进制转十进制(整数、小数)

----1.2、八进制转十六进制(整数、小数)


正文


一、八进制

概念:八进制是一种以8为基数的计数法。采用0,1,2,3,4,5,6,7八个数字,逢八进1。进位规则是"逢八进一",借位规则是"借一当八"。八进制的数和二进制数可以按位对应(八进制一位对应二进制三位),因此常应用在计算机语言中。

八进制加法

八进制减法

----1.0.0、八进制转二进制(整数)

八进制整数转换为二进制整数时,每一位八进制数字转换为三位二进制数字,运算的顺序是从低位向高位依次进行,高位有零可以去除。下图演示了如何将八进制整数 1674 转换为二进制:

八进制转二进制(整数)

----1.0.1、八进制转二进制(小数)

八进制小数转换为二进制小数时,每一位八进制数字转换为三位二进制数字,运算的顺序是从高位向低位依次进行,低位有零可以去除。下图演示了如何将二进制小数 0.7360 转换为二进制:

八进制转二进制(小数)


----1.1.0、八进制转十进制(整数)

八进制整数转换十进制整数时,使用"按权相加"法,所谓"权"就是"位权",从右往左,第i位的位权为,然后使用该位上的数字乘以"位权",最终将所有结果相加即可。下图演示了如何将八进制整数 1674 转换为十进制

八进制转十进制(整数)

----1.1.1、八进制转十进制(小数)

八进制小数转换十进制小数时,使用"按权相加"法,所谓"权"就是"位权",从左往右,第j位的位权为,然后使用该位上的数字乘以"位权",最终将所有结果相加即可。下图演示了如何将八进制小数 0.7360 转换为十进制

八进制转十进制(小数)


----1.2.0、八进制转十六进制(整数)

八进制转换十六进制并没有直接转换的方式,通常会采用间接转换的方式完成,如:先将八进制整数(小数)转换成二进制或十进制整数(小数),最后再将转换完的二进制或十进制整数(小数)转换为十六进制整数(小数)


PS:(特殊进制(七进制)、为什么要使用八进制。)

7 是自然数中的素数,首先在说七进制之前我们来计算一下除法运算:

1 ÷ 7 = 0.142857142857142857······
2 ÷ 7 = 0.2857142857142857142857······
3 ÷ 7 = 0.42857142857142857142857······
4 ÷ 7 = 0.57142857142857142857······
5 ÷ 7 = 0.7142857142857142857······
6 ÷ 7 = 0.857142857142857142857······
7 ÷ 7 = 1
8 ÷ 7 = 1.142857142857142857······
9 ÷ 7 = 1.2857142857142857142857······
10 ÷ 7 = 1.42857142857142857142857······
11 ÷ 7 = 1.57142857142857142857······
12 ÷ 7 = 1.7142857142857142857······
13 ÷ 7 = 1.857142857142857142857······
14 ÷ 7 = 2
······

可以发现任何数(除了7的整数倍)除以 7 的小数部分都是无限循环小数,并且循环数都是 142857 ,另外 142857 * 7 = 999999 ,这是一个很神奇的事情。

另外为什么计算机中要使用八进制,计算机采用的不是二进制吗?其实最主要的原因就是因为二进制,请各位读者盯着下面内容(16 * 128 的非方阵)看十秒钟:

00111111011100011011001100011111011011101000111111100010110011101100000111011111110101010011010001001010001110100001011000000111
10011100100000100111101011011110101111001100110000001001110110111110011001101000010111100101010110111011011100110001111010000110
11010110110100001011010111010000010011001011011001110000110011111011100001111110100010000100111100110101110001110011001001111110
10100101000100011001111111110111001100100001100100010100110010000111001001100001010101100101100101110110001101100011000010000000
01001111000110000111000111010110010110001011110010001001100101010100111010011100111010101000100111110100100111001110001011000000
01011100010001000100100111111010110100110000101111000011111111101100101110100010000110111110001100011100001111010001000101010111
11101110011110000110010110010001100100110000001100010001111100010111010010111101001101100000000101010110001111100010011111111010
10101111001010010000100111110101100001011000100010101111111000000000011000011011011000000110111001100011110100111101000011011111
11010101111000100000000100111100111111101000001010001001000111101011000001110001010100101001100100010011001111110110001100101001
00110101000111111010001111011110011111010010100101000110001101011010000010010000101100001100100000011111000101011000111000100010
00100011101010101100111110100100001011111010011100001000001010111110110110001001001110101000110001110100001001011011011110111110
10011000010011100111110011111111010000101110101011010101100010011110001101000111101001100000111011110001000010110000001110000101
00001011110000010000110010011000000100001011101111000001111000111101001010100100000111110100011010101111111110110010111111000001
00110011010010001000011101011010100000110011000010011111100101001000100110110001101000110000011110111100110100110001100010010111
10011100010001001101010001000110011010001001110000111001011000010000100100100001001110010110010000110101111000110000000001100011
10010110101000000101101010010111001100010010101001010001011100110111100001011110010111001101001011000011010111001111001111001011

眼睛应该已经受不了了吧,没有关系,先休息一下;(保护视力,人人有责),二进制数的缺点就是太长、书写不便、阅读不便、以及记忆不便,个人感觉如果能把上面的内容背下来,那么接下来可以考虑背诵圆周率了;当我们采用八进制的时候就可以减少二进制的位数,当然十六进制(后面会详细讲解该进制转换)也可以,同时 2 、 8 和 16 也是 、 和 ,更加方便它们之间的转换,不仅缩短了位数,也保留了二进制的特点,是不是很棒。(古人乃大智慧者也)


进制对应关系:

微信扫码关注《小九爱学习》 

 

更多推荐

进制转换--《八进制》