对于一个r进制的数,可以使用的符号有r个,记为A。例如:二进制,可以使用的符号为(0,1);十进制可以使用的符号为(0,1,2,3,4,5,6,7,8,9);十六进制可以使用的符号为(0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F)。
一个r进制的实数可以表示为(AmAm-1...A0A-1A-2...A-(n-1)A-n )r。其中,A0后面隐藏小数点。
例如:
二进制实数:(1011011.110011)2或1011011.110011B
十进制实数:(9671.352)10或9671.352
十六进制实数:(A8BF.F31A)16或A8BF.F31AH
八进制实数:(7456.231)16或7456.231O
计算机中常用的进制数为二进制(Binary)、八进制(Octal)、十六进制(Hexadecimal)。
一般,人们对于十进制的数能更好的衡量大小。所以,下面讨论r进制和十进制互转。
1,r进制转十进制
(AmAm-1...A0A-1A-2...A-(n-1)A-n)r=(Am*rm+Am-1*rm-1+...+A0*r0+A-1*r-1+A-2*r-2+...+A-(n-1)*r-(n-1)+A-n*r-n)10
例如:1011011.110011B
=1*26+0*25+1*24+1*23+0*22+1*21+1*20+1*2-1+1*2-2+0*2-3+0*2-4+1*2-5+1*2-6
=64+0+16+8+2+1+0.5+0.25+0.03125+0.015625=92.078125
2,十进制转r进制
十进制数转换成r进制数,须将整数部分和小数部分分别转换.
(1),整数转换
除r取余法 规则:(1)用r去除给出的十进制数的整数部分,取其余数作为转换后的r进制数据的整数部分最低位数字; (2)再用r去除所得的商,取其余数作为转换后的r 进制数据的高一位数字; (3)重复执行(2)操作,一直到商为0结束。
例:将25转换为二进制数
解:25÷2=12 余数1
12÷2=6 余数0
6÷2=3 余数0
3÷2=1 余数1
1÷2=0 余数1
所以25=(11001)2
(2),小数转换
乘r取整法 规则:(1)用r去乘给出的十进制数的小数部分,取乘积的整数部分作为转换后r进制小数点后第一位数字; (2)再用r去乘上一步乘积的小数部分,然后取新乘积的整数部分作为转换后r进制小数的低一位数字; (3)重复(2)操作,一直到乘积为0,或已得到要求精度数位为止。
例:将0.25转换为二进制数
解:0.25*2=0.5 整数部分0
0.5*2=1 整数部分1
所以0.25=(0.01)2
另外,八进制、十六进制和二进制有一些微妙的关系