快速进制转换

速记:

2⁰ → 1

2¹ → 2

2² → 4

2³ → 8

2⁴ → 16

2⁵ → 32

2⁶ → 64

2⁷ → 128

2⁸ → 256

2⁹ → 512

2¹⁰ → 1024

1.十进制转二进制

核心口诀:

找最大 2 幂,从大到小试;能减记 1,不能记 0,最后串成数。

例子1:十进制 10 → 二进制

  1. 找最大:10→8(2³)
  2. 从大到小试:8(能减→1,剩 2)→4(不能→0)→2(能减→1,剩 0)→1(不能→0)
  3. 串起来:1010

例子 2:十进制 87 → 二进制

  1. 找最大 2 幂:≤87 的是 64(2⁶) → 记 1,87-64=23
  2. 从 2⁵到 2⁰依次试:
    • 32(2⁵):23 减不掉 → 记 0
    • 16(2⁴):23 能减 → 记 1,23-16=7
    • 8(2³):7 减不掉 → 记 0
    • 4(2²):7 能减 → 记 1,7-4=3
    • 2(2¹):3 能减 → 记 1,3-2=1
    • 1(2⁰):1 能减 → 记 1,1-1=0
  3. 串起来(2⁶到 2⁰):1 0 1 0 1 1 1 → 二进制 1010111

例子 3:十进制 125 → 二进制

  1. 找最大 2 幂:≤125 的是 64(2⁶) → 记 1,125-64=61
  2. 从 2⁵到 2⁰依次试:
    • 32(2⁵):61 能减 → 记 1,61-32=29
    • 16(2⁴):29 能减 → 记 1,29-16=13
    • 8(2³):13 能减 → 记 1,13-8=5
    • 4(2²):5 能减 → 记 1,5-4=1
    • 2(2¹):1 减不掉 → 记 0
    • 1(2⁰):1 能减 → 记 1,1-1=0
  3. 串起来(2⁶到 2⁰):1 1 1 1 1 0 1 → 二进制 1111101

例子 4:十进制 432 → 二进制

  1. 找最大 2 幂:≤432 的是 256(2⁸) → 记 1,432-256=176
  2. 从 2⁷到 2⁰依次试:
    • 128(2⁷):176 能减 → 记 1,176-128=48
    • 64(2⁶):48 减不掉 → 记 0
    • 32(2⁵):48 能减 → 记 1,48-32=16
    • 16(2⁴):16 能减 → 记 1,16-16=0
    • 8(2³):0 减不掉 → 记 0
    • 4(2²):0 减不掉 → 记 0
    • 2(2¹):0 减不掉 → 记 0
    • 1(2⁰):0 减不掉 → 记 0
  3. 串起来(2⁸到 2⁰):1 1 0 1 1 0 0 0 0 → 二进制 110110000

2.二进制转十进制

核心口诀 从右标位次,遇 1 乘幂次,全加得结果

关键关联:和你记的 2 的幂次表 完全通用,不用新记东西!位次规则:二进制数 从右往左数,第 1 位(最右)是 2⁰,第 2 位是 2¹,第 3 位是 2²...... 以此类推。

三步肌肉记忆模板(无脑套用)

  1. 标位次 :把二进制数写下来,从最右边 开始,给每一位标上 2ⁿn(从 0 开始);
  2. 算 1 不算 0 :只看标了1的位,把每一位的 2ⁿ 算出来;
  3. 全加求和:把这些算出来的数加起来,就是十进制结果!

实战例子(直接套用,一看就会)

例子 1:二进制 1010 → 十进制

  • 写数标位次(从右往左):

    二进制位 1 0 1 0
    对应 2ⁿ 2⁰
  • 算 1 不算 0:只有第 1 位(左数)和第 3 位是 1 → 2³=82¹=2

  • 求和:8+2=10 → 十进制 10

例子 2:二进制 110110 → 十进制

  • 标位次(从右往左):

    二进制位 1 1 0 1 1 0
    对应 2ⁿ 2⁵ 2⁴ 2⁰
  • 算 1 不算 0:2⁵=322⁴=162²=42¹=2

  • 求和:32+16+4+2=54 → 十进制 54

例子 3:二进制 110110000(之前 432 转的)→ 十进制

  • 标位次(从右往左,只看 1 的位):二进制位:1 1 0 1 1 0 0 0 0 → 对应 2⁸ 2⁷ 2⁵ 2⁴
  • 算值:256+128+32+16=432 → 完美对应!
相关推荐
m0_706653232 小时前
C++编译期数组操作
开发语言·c++·算法
故事和你912 小时前
sdut-Java面向对象-06 继承和多态、抽象类和接口(函数题:10-18题)
java·开发语言·算法·面向对象·基础语法·继承和多态·抽象类和接口
qq_423233902 小时前
C++与Python混合编程实战
开发语言·c++·算法
TracyCoder1233 小时前
LeetCode Hot100(19/100)——206. 反转链表
算法·leetcode
m0_715575343 小时前
分布式任务调度系统
开发语言·c++·算法
naruto_lnq3 小时前
泛型编程与STL设计思想
开发语言·c++·算法
zxsz_com_cn3 小时前
设备预测性维护算法分类及优劣势分析,选型指南来了
算法·分类·数据挖掘
m0_748708054 小时前
C++中的观察者模式实战
开发语言·c++·算法