数制转换

数制

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

你可能感兴趣的:(软考)