更快地进行进制转换
本文主要针对二进制,八进制,十进制,十六进制中的一些转换提供一些技巧和思路,以加快进制转换的手算及心算速度.
十进制转换成其他进制
这里我举一个37.625(十进制)转换为二进制的例子来说明计算方法
分成两个步骤
步骤1
打表,以1为基础,向左不断乘以2,向右不断除以2
得出32 16 8 4 2 1 0.5 0.25 0.125 的表
步骤2
根据步骤1打出的表,每次取表中最大的数来进行减法运算,如果能被最大的数减去(结果大于等于0即能被减去)那么就减去该最大数,然后不断循环,直到结果为0.
其全部过程由下图所示
最后填上小数部分,可得结果为100101.101
这是二进制的,如果是十六进制的那么起打表为 256 16 1 1/16, 八进制的则为 64 8 1 1/8
打出的表可以根据需要调整长度,然后再根据步骤2进行运算即可.
这里可以类比推广到十进制转换成任意进制,不再赘述.
二进制转换为十六进制
再次以刚刚的数为例子100101.101 转换为十六进制
黄色部分:0010->3
红色部分:0101->5
绿色部分:1010->A
最终可得结果为0x35.A
二进制转换为八进制
其过程与前面的'二进制转换为十六进制'方法相同,只不过八进制是以3个二进制数为一组
总结
二进制中128 64 32 16 8 4 2 1的表需要牢记,就可以足够应付心算255之内的数