总是说权重来转换进制,如二进制1001(2)通过权重就是:
- 1*2^3+0*2^2+0*2^1+1*2^0=9
所以我们其实也可以想到拼凑法,对于一个10进制数我们采用拼凑的方法得到其二进制序列。
当然,还有二进制转换为小数的情况,其实也是乘上2的负数次方。
对于10进制小数位转换为2进制,如下图:
我们每次将小数位乘上2,每次取其整数位,直到结果恰好为1,我们按顺序排列其二进制序列。
再比如:
还有一种算法:第一位乘2之后加上第二位,之后再乘2,之后加上第三位,再之后乘2,直到加上最后一位便不再乘2。
- 1001(2)
- (((1*2)+0)*2+0)*2+1=9
我们要学好编程语言,就一定要知道进制的转换,16进制也是必须知道的。
十进制有10位数,逢10进1,从0~9是十位数;同理,16进制就是0~15,但是,一个16进制位只能用一位来表示,所以将10用A来表示。
因为计算机程序员是一定要用的,所以开发者们就在计算机里面的内置计算器有程序员模式,打开方法为Home + R 打开运行窗口,并输入calc(因为计算英文是calculate)。
4个二进制位全为1最大刚好是15,正好能用一个16进制位F来表示:
而一个字节正好是8个比特位,我们能用两个16进制位表示,因为内存地址为了方便表示就用16进制位来表示的。
对于十进制的整数我们要转换为二进制,就需要对其除2模2,如下图:
因为8进制每一位是0~7,各自写成2进制,最多有3个2进制位。 所以二进制转8进制从右往左每3个2进制位换算成一个8进制位。