zoukankan      html  css  js  c++  java
  • 更快地进行进制转换

    更快地进行进制转换

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

    十进制转换成其他进制

    这里我举一个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之内的数

  • 相关阅读:
    程序猿和产品狗
    编写一个友元函数,求两个日期之间相差的天数
    集合的模拟实现(类模板)
    友元很简单2016final
    攻防世界-parallel-comparator-200
    web-GXYCTF2019 StrongestMind
    破解010Editor
    2020第三届江西省高校网络安全技能大赛线下解题赛部分wp
    pwn-EasyHeap(House of spirit)
    web-2020 ciscn littlegame(原型链污染)
  • 原文地址:https://www.cnblogs.com/virgildevil/p/12368327.html
Copyright © 2011-2022 走看看