一、数制转换
R进制转十进制
R进制转十进制使用按权展开法,计算方式为: 将R进制的每一位数值用\(R^k\)形式表示,即幂的底数是R,指数为K,K与该位 和小数点之间的距离有关
当该位位于小数点左边,k值是该位和小数点之间数码的个数,而当该位位 于小数点右边,k值是负值,其绝对值是该位和小数点之间数码的个数加1
例如:二进制 10100.01 = 1*\(2^4\) + 1*\(2^2\) + 1*2-2
例如:七进制 604.01 = 6*72 + 4*70 + 1*7-2
十进制转R进制
十进制转R进制用短除法
例:将173转换为二进制数 10101101
余数为零可省略,为一则纳入
快速转换法
二进制转八进制:取三合一法
即从二进制的小数点为分界点,向左(或向右)每三位取成一位,然后将三位二进制按权相加,得到的数就是一位八进制数。
这里需要注意的是,在向左(或向右)取三位时,取到最高位(最低位)如果无法凑足三位,就可以在小数点的最左边(或最右边)补0,进行换算
八进制转为二进制:一分三
即一个八进制数分成三个二进制数,用三位二进制按权相加,最后得到二进制,小数点依旧就可以啦。
二进制转十六进制:取四合一法
即从二进制的小数点为分界点,向左(或向右)每四位取成一位
注意16进制的表示法,用字母H后缀表示,比如BH就表示16进制数11;也可以用0X前缀表示,比如0X23就是16进制的23
这里需要注意的是,在向左(或向右)取四位时,取到最高位(最低位)如果无法凑足四位,就可以在小数点的最左边(或最右边)补0,进行换算
十六进制转二进制:一分四
即一个十六进制数分成四个二进制数,用四位二进制按权相加,最后得到二进制,小数点依旧就可以啦
二、数的表示
原码:
符号位:为0表示正,为1表示正
反码:
符号位:为0表示正,为1表示负
补码:
符号位:为0表示正,为1表示负
移码:
补码的符号位取反
正数:三码合一
负数:
反码:原码最高位(符号位)为1,其他位取反
补码:反码+1
数的表示范围
整数 | |
---|---|
原码 | -(2n-1-1)~2n-1-1 |
反码 | -(2n-1-1)~2n-1-1 |
补码 | -2n-1~2n-1-1 |
移码 | -2n-1~2n-1-1 |
n为二进制位数
</