要把 16 进制0x10000000转换成二进制,核心规则是1 位 16 进制 = 4 位二进制,按 “逐位替换 + 补零” 的方式就能快速算出,结果非常直观:
转换步骤(超简单,一步步来)
拆分 16 进制数:
0x10000000可拆成 8 个 16 进制位(16 进制数每两位占 1 字节,共 4 字节 = 8 个 16 进制位):0、x(前缀,忽略)、1、0、0、0、0、0、0、0、0→ 有效数字位:1后面跟 7 个0(即1 0 0 0 0 0 0 0)。16 进制→二进制逐位替换(记住 4 位对应表):
16 进制位 对应 4 位二进制 0 0000 1 0001 2~F 0010~1111(这里用不到) 所以:
1→0001- 每个
0→0000
拼接所有 4 位二进制:把 8 个 16 进制位对应的二进制串连起来:
0001+0000+0000+0000+0000+0000+0000+0000最终结果(32 位二进制,嵌入式常用):
0001 0000 0000 0000 0000 0000 0000 0000(空格是为了可读性,可去掉)
关键观察(结合你之前的 ADC 配置)
这个二进制数的核心特点:只有从右数第 28 位是 1(从 0 开始计数),其他位全是 0!正因为如此,0x10000000才能作为 “软件触发” 的专属标识 ——ADC 寄存器的第 28 位专门对应 “软件触发使能”,写入这个值就相当于 “按下软件触发的开关”。
快速验证技巧(避免算错)
- 16 进制
0x10000000= 十进制268435456; - 二进制
00010000000000000000000000000000换算成十进制:2^27 = 268435456(从 0 计数,第 28 位对应 2^27),完全匹配,说明转换正确。
一句话总结
16 进制0x10000000→ 32 位二进制:00010000000000000000000000000000(或带空格分段:0001 0000 0000 0000 0000 0000 0000 0000),核心是 “仅第 28 位为 1”,适配 ADC 寄存器的触发源位设计。