1.加减法转换法(个人认为需要记得的比较多)
数制转换的基础(前提)是了解什么是二进制、十进制、十六进制的概念。简单来说是逢基数(2,10,16)
进位。首先我们要知道255的二进制数是1111 1111(B),所以在0-255的范围内所对应的二进制数都不可能超过8位。
下面用一幅图来演示计算过程。
2.乘减法转换法(熟记内容少一些)
我们知道16进制与二进制可以相互转换的,对应关系是16进制的一位对应二进制的4位,如十进制数255,
其二进制数数 :1111 1111(B) ;其16进制数是 :FF(准确应该是0xFF)
所以在0~255 的范围内主要熟悉0~15的二进制以及熟悉16与比之小的整数的运算值就可以较快算出对应的
二进制,其过程是将十进制先转“假的16进制”(不会超过两位),然后转换为二进制。
继续按照上面的例子说明:十进制数219(巧记就是超过10的乘法记住尾值,简单来说熟记就行)
208=13 * 16 余数11。组合起来就是 13 和11 ,然后转二进制就是1101 1011(B)。
3.临近大值转换法(与第一种方法类似,但是要求对位权熟悉)
首先要明白这里的“临近大值”是什么意思,这是我自己给出的一个概念,其实在0~255 的范围内就是上面
第一种方法中黑色的数字-1,即:
255,127,63,31,15,7,3,1
继续按照上面的219为例子,它临近255(255二进制数是1111 1111(B)),二者差值是 -36(32+4),
则将255的二进制数的位权数为5和2的基数置0,结果就是:1101 1011(B)。
再举一个例子115,临近127(127二进制数是0111 1111(B)),二者差值为-12(8+4),则将127的
二进制数位权为3和2的基数置0,结果就是:0111 0011(B)。
其实,将方法一和方法三对比,就可以发现如果十进制数与临近大值相差过大,则用方法一,反之用方法三
(前提理解位权是什么)。但是如果对于192、224,240,248,252,254,255的二进制数很熟悉的话就
可以进行更加快速的数制转换了。