左哥算法 - 进制转换

1,546 阅读2分钟

1. 十进制转二进制

方法一:除2取余法(从右到左)

例如:将13转换为二进制

13 ÷ 2 = 61  (最右边一位)
6 ÷ 2 = 30
3 ÷ 2 = 11
1 ÷ 2 = 01  (最左边一位)

从下往上读余数:1101

方法二:2的幂次方法(记忆常用数字)

记忆常用的2的幂:
2⁰ = 1
2¹ = 2
2² = 4
2³ = 8
2⁴ = 16
2⁵ = 32
2⁶ = 64
2⁷ = 128
2⁸ = 256

例如:13 = 8 + 4 + 1 = 2³ + 2² + 2⁰
所以 13 的二进制是 1101

2. 二进制转十进制

方法一:按权展开法

例如:1101转十进制

1101 = 1×2³ + 1×2² + 0×2¹ + 1×2⁰
     = 1×8  + 1×4  + 0×2  + 1×1
     = 8    + 4    + 0    + 1
     = 13

方法二:快速累加法

从左到右,每次结果乘2再加当前位

110111
11   →  (1×2 + 1) = 3
110  →  (3×2 + 0) = 6
1101 →  (6×2 + 1) = 13

3. 实用技巧

3.1 记忆2的幂

2⁰ = 1
2¹ = 2
2² = 4
2³ = 8
2⁴ = 16
2⁵ = 32
2⁶ = 64
2⁷ = 128
2⁸ = 256

3.2 记忆常用数字的二进制

1 = 1
2 = 10
3 = 11
4 = 100
5 = 101
6 = 110
7 = 111
8 = 1000
9 = 1001
10 = 1010
15 = 1111
16 = 10000

4. 练习示例

例1:将25转换为二进制
25 = 16 + 8 + 1 = 2⁴ + 2³ + 2⁰
所以 25 = 11001

例2:将1011转换为十进制
1011 = 8 + 2 + 1 = 11
或者:
1 → 1
10 → 2
101 → 10 + 1 = 11
1011 → 10 + 1 = 11

5. 快速验算技巧

  1. 判断奇偶

    • 看最后一位是否为1
    • 1结尾是奇数,0结尾是偶数
  2. 乘2和除2

    • 左移一位相当于乘2
    • 右移一位相当于除2
  3. 2的幂

    • 二进制中只有一个1
    • 如:16 = 10000,8 = 1000

6. 练习建议

  1. 先记住1-16的二进制表示
  2. 多练习2的幂次方的转换
  3. 从小数字开始练习,逐渐增加难度
  4. 可以使用计算器验证结果

掌握这些技巧后,你就能在面试中快速进行二进制转换了。建议每天练习几个数字的转换,很快就能形成肌肉记忆!