十进制二进制互相转换,其他的进制有简便方法吗
十进制整数转换为二进制整数采用"除2取余,逆序排列"法。
具体做法是:用2整除十进制整数,可以得到一个商和余数;再用2去除商,又会得到一个商和余数,如此进行,直到商为小于1时为止,然后把先得到的余数作为二进制数的低位有效位,后得到的余数作为二进制数的高位有效位,依次排列起来。
原理:
众所周知,二进制的基数为2,我们十进制化二进制时所除的2就是它的基数。谈到它的原理,就不得不说说关于位权的概念。某进制计数制中各位数字符号所表示的数值表示该数字符号值乘以一个与数字符号有关的常数,该常数称为 “位权 ” 。
位权的大小是以基数为底,数字符号所处的位置的序号为指数的整数次幂。十进制数的百位、十位、个位、十分位的权分别是10的2次方、10的1次方、10的0次方,10的-1次方。二进制数就是2的n次幂。
扩展资料:
十进制小数转换为二进制小数:
十进制小数转换成二进制小数采用"乘2取整,顺序排列"法。具体做法是:用2乘十进制小数,可以得到积,将积的整数部分取出,再用2乘余下的小数部分,又得到一个积,再将积的整数部分取出,如此进行,直到积中的小数部分为零,此时0或1为二进制的最后一位。或者达到所要求的精度为止。
然后把取出的整数部分按顺序排列起来,先取的整数作为二进制小数的高位有效位,后取的整数作为低位有效位。
原理:
假设一十进制小数B化为了二进制小数0.ab的形式,同样按权展开,得B=a(2^-1)+b(2^-2)
因为小数部分的位权是负次幂,所以我们只能乘2,得2B=a+b(2^-1)
注意a变成了整数部分,我们取整数正好是取到了a,剩下的小数部分也如此。
值得一提的是,小数部分的按权展开的数位顺数正好和整数部分相反,所以不必反向取余数了。
参考资料:百度百科-十进制转二进制
512。。。。64。。。。8。。。。1
。0。。。。3。。。。。1。。。。2
结果是0312
在64这里,要算202里有几个64,得出3个,然后202-64×3=10
在8这里,要算10里面有几个8,得出1个,然后10-8×1=2
在1这里,要算2里面有几个1,得出2
也就是说,在每一列下面都要算一次乘除法和减法,因为是8进制,所以除法结果是0到7,不会更大
2进制看起来简单,是因为那个除法结果只可能是0或者1,容易到了可以忽略它的存在,所以看起来只是一个减法
同样,16进制,每一列除法结果有可能是0到15,就更麻烦了
所以方法是一样的,但只是用在2进制才算简便
另外有一个办法
就是先把10进制变成2进制,在把2进制变成8进制或16进制
比如202,2进制是11001010
从右到左分成每3个数字一组11、001、010,当成3个2进制数字,用眼睛看就很容易算出10进制的值分别是3、1、2,对应的8进制也是3、1、2,再连在一起,202的8进制就是312
再从右到左分成每4个数字一组1100、1010,当成2个2进制数字,用眼睛看也很容易算出10进制值是分别是12、10,对应16进制是C、A,再连在一起,202的16进制就是CA
我回头在好好琢磨琢磨😅