进位制
在计算机中,除了二进制,比较常用的还有八进制和十六进制。
二进制¶
二进制是计算机内部运算中采用的进制,在这样的进制系统下,只有 0,1 两个数字,计算机内部的所有运算(包括位运算)都是在二进制的基础上进行的。
但用二进制表示数字会让数字过长,因此为了方便表示的需要,通常会把二进制数转换为八进制或十六进制表示。
八进制¶
在八进制下,有 0,1,2,3,4,5,6,7 八个数字。
一般情况下,八进制数以 oxx
(其中 o
为八进制的前缀, xx
代表八进制数)的形式来表示。
十六进制¶
在十六进制下,有 0,1,2,3,4,5,6,7,8,9,A(10),B(11),C(12),D(13),E(14),F(15) 十六个数字。
十六进制与二进制相比,最大的优点就是表示的数字长度较短,一位十六进制数可以表示 4 位二进制数。
一般情况下,十六进制数以 0xdbf
(其中 0x
为十六进制数的前缀)的形式来表示。
进制间的相互转化¶
十进制转二进制/八进制/十六进制¶
这里以二进制为例来演示,其他进制的原理与其类似。
整数部分,把十进制数不断执行除 2 操作,直至商数为 0。读余数从下读到上,即是二进制的整数部分数字。小数部分,则用其乘 2,取其整数部分的结果,再用计算后的小数部分依此重复计算,算到小数部分全为 0 为止,之后从上到下,读所有计算后整数部分的数字,即为二进制的小数部分数字。
1 2 3 4 5 6 7 8 9 10 11 | 将33.25转化为二进制数 整数部分: 33/2=16 ......1 16/2=8 ......0 8/2=4 ......0 4/2=2 ......0 2/2=1 ......0 1/2=0 ......1 小数部分: 0.25*2=0.5 0 0.5*2=1 1 |
即 33.25 = (100001.01)_2
二进制/八进制/十六进制转十进制¶
还是以二进制为例。
二进制数转换为十进制数,只需将每个位的值,乘以 2^i 次即可,其中 i 为当前位的位数,个位的位数为 0。
1 2 3 | 将11010.01(2)转换为十进制数 11010.01(2)=1*2^4+1*2^3+0*2^2+1*2^1+0*2^0+0*2^(-1)+1*2(-2) =26.25 |
即 (11010)_2 = (26.25)_{10}
二进制/八进制/十六进制间的相互转换¶
一个八进制位可以用 3 个二进制位来表示(因为 2^3 =8 ),一个十六进制位可以用 4 个二进制位来表示( 2^4 = 16 ),反之同理。
build本页面最近更新:,更新历史
edit发现错误?想一起完善? 在 GitHub 上编辑此页!
people本页面贡献者:OI-wiki
copyright本页面的全部内容在 CC BY-SA 4.0 和 SATA 协议之条款下提供,附加条款亦可能应用