大家好,这里是渡枫。
本期是进制转换的专栏,
话不多说,直接开始。
Link Start!
目录
概念
①二进制
二进制是计算技术中广泛采用的一种数制。
二进制数据是用0和1两个数码来表示的数。
它的基数为2,进位规则是“逢二进一”,借位规则是“借一当二”。
如:10101110、101
②八进制
八进制,Octal,缩写OCT或O,一种以8为基数的计数法,
八进制数据采用0,1,2,3,4,5,6,7八个数字来表示,逢八进1。
它的基数为8,低位数和高一位数之间的关系是"逢八进一"。
八进制数通常是无符号数,在编程中以数字0开始表明该数字是八进制。
如:0017、0123、0177777
③十进制
其表示与数学上的整数表示相同。
④十六进制
十六进制中,用A来表示10,B表示11,C表示12,D表示13,E表示14,F表示15,因此有 0~F 共16个数字。
它的基数为16,加法运算时"逢16进1",减法运算时"借1当16"。
如: 0、1、6、9、A、D、F、419、EA32、80A3、BC00 都是有效的十六进制。
进制转换
①二进制转八进制
二进制整数转换为八进制正数时,每3位二进制整数转换为1位八进制整数。
运算的顺序是从低到高依次进行,高位不足三位用零补齐。
例如:将1010110 转换为八进制,结果为:126。
②八进制转二进制
八进制整数转二进制整数时,思路是相反的。
每一位八进制整数转换为三位二进制整数,运算的顺序也是从低位向高位依次进行即可。
③ 二进制转十进制(估计...不需要?)
例如:将110转换位十进制,结果为:6。
④十进制转二进制
十进正数转换二进制整数时,需要不断的将原本的数除以2,不断得到新的商和新的余数(保留),只到商最终为0。
例如:42转换为二进制,结果为:101010
⑤二进制转十六进制
二进制整数转换为十六进制整数时,每4位二进制整数转换为1位十六进制整数。
运算的顺序是从低位向高位依次进行,高位不足四位用零补齐,与转八进制类似。
还是使用1010110作为例子,结果为:56
⑥十六进制转二进制
十六进制数转为二进制数时,思路也是相反的。
每1位十六进制数字转换为4位二进制数字,运算的顺序也是从低位向高位依次进行。
⑦八进制转十进制
八进制数转换为十进制数时,最重要的就是注意幂的变化。
没有运算的顺序,每个数只要乘上它的位权。
那么,什么是权位呢?
假设当前数字是 n 进制,那么:
- 对于整数部分,从右往左看,第 i 位的位权等于n^i-1
- 对于小数部分,恰好相反,要从左往右看,第 j 位的位权为n^-j。
例如此处,0的位权是8^7,7的位权是8^0。
例如:将01234567转换为十进制数。
⑧十进制转八进制
十进正数转换八进制整数时,需要不断的将原本的数除以8,不断得到新的商和新的余数(保留),只到商最终为0。
例如:36926转换为二进制,结果为:110076
⑨八进制转十六进制
不能直接转换,
可以先转换成二进制或十进制,再转换位为十六进制。
⑩十六进制转八进制
不能直接转换,
可以先转换成二进制或十进制,再转换位为十六进制。
⑩①十进制转十六进制
十进制整数转换十六进制整数时,需要不断的将原本的数除以16,不断得到新的商和新的余数(保留),只到商最终为0。
方法过程与此前的类似,故不在赘述。
例如:36926转换为二进制,结果为:903e
⑩②十六进制转十进制
十六进制整数转换十六进制整数时,需要按权展开并相加。
例如:903e转换为十进制,结果为:36926