更快地进行进制转换

更快地进行进制转换

本文主要针对二进制,八进制,十进制,十六进制中的一些转换提供一些技巧和思路,以加快进制转换的手算及心算速度.

十进制转换成其他进制

这里我举一个37.625(十进制)转换为二进制的例子来说明计算方法

分成两个步骤

步骤1

打表,以1为基础,向左不断乘以2,向右不断除以2

得出32 16 8 4 2 1 0.5 0.25 0.125 的表

步骤2

根据步骤1打出的表,每次取表中最大的数来进行减法运算,如果能被最大的数减去(结果大于等于0即能被减去)那么就减去该最大数,然后不断循环,直到结果为0.

其全部过程由下图所示

1582711261491

最后填上小数部分,可得结果为100101.101

这是二进制的,如果是十六进制的那么起打表为 256 16 1 1/16, 八进制的则为 64 8 1 1/8

打出的表可以根据需要调整长度,然后再根据步骤2进行运算即可.

这里可以类比推广到十进制转换成任意进制,不再赘述.

二进制转换为十六进制

再次以刚刚的数为例子100101.101 转换为十六进制

1582718744736

黄色部分:0010->3

红色部分:0101->5

绿色部分:1010->A

最终可得结果为0x35.A

二进制转换为八进制

其过程与前面的'二进制转换为十六进制'方法相同,只不过八进制是以3个二进制数为一组

总结

二进制中128 64 32 16 8 4 2 1的表需要牢记,就可以足够应付心算255之内的数

posted @ 2020-02-26 18:21  virgil_devil  阅读(567)  评论(0编辑  收藏  举报