数制
R进制,通俗来说就是逢R进一,可以使用的数为R个,从0~R-1,例如二进制可以用的数为0,1。
二进制:逢二进一,通常在二进制后面加上字母B或者下标2作为二进制的标识。B就是二进制的英文Binary system的首字母
八进制:逢八进一,通常在八进制后面加上字母O或者小写的o,或者下标8作为八进制的标识,O是英文八进制octal system的首字母
十六进制:逢十六进一,有十六个字符0-9、A~F,通常在十六进制后面加上H或下标16作为十六进制的标识,H就是十六进制的英文hex的首字母
数值计算
对于任意一个R进制数,它的每一位数值等于该位的数值乘以该位的权数,权数是由R^k表示,
k与该位和小数点之间的距离有关。当该位位于小数点左边,k值是该位和小数点之间的数码的个数,
而当该位位于小数点右边,k为负值,其绝对值是该位和小数点之间数码的个数加1,也可以认为等于小数点
后的第几位
例如:
二进制:10100.01B,其数值计算如下:
10100.01B = 1*2^4+0*2^3+1*2^2+0*2^1+0*2^0+1*2^-2 =20.25
十六进制:8ABH计算如下
8ABH = 8*16^2+10*16+11*16^0 = 2219
数值转换
十进制转化为R进制利用"初一R取余数法"。例如:
2 | 94 余 0
2 | 47 余 1
2 | 23 余 1
2 | 11 余 1
2 | 5 余 1
2 | 2 余 0
1 余 1
然后将余数从下向上排列即可,得1011110
十进制小数利用乘2取整法转化为二进制小数
例如,将十进制小数0.43转化成二进制小数的过程如下(假设要求小数点后5位)
0.43 *2=0.86 取整 0
0.86 *2=1.72 取整 1
0.72 *2=1.44 取整 1
0.44 *2=0.88 取整 0
0.88 *2=1.76 取整1
从上向下排列得转化后的二进制小数 0.01101B
二进制在转化为十六进制是,可从小数点开始,往前每四位转化成对应的十六进制数即可,往后每四位转化成十六进制熟即可,不够四位的补0.例如:
10 1011.1111 1B = 2B.F8 H这个转换其实没什么技巧,就是把二进制的数据四个一组分开,0010 = 2,1011=11,1111=15,1000=8根据十六进制对应的数值得出结果
同理,二进制在转化为八进制是,可从小数点开始,往前每三位转化成对应的八进制数即可,往后每三位转化为八进制数即可,不够三位的补0即可,比如:
1 011.111 11B = 13.76 O 转换过程为 001 = 1,011 = 3,111 =7 , 110 = 6,最后的结果为 13.76