二进制、八进制、十进制转换实用小技巧

张开发
2026/6/8 23:18:28 15 分钟阅读
二进制、八进制、十进制转换实用小技巧
1、各进制定义的格式进制定义格式基数可用数字 / 字符范围前缀C 语言赋值用赋值举例printf 输出格式打印效果示例十进制逢 10 进 1100、1、2、3、4、5、6、7、8、9无int a 123;%dprintf(%d, a);→ 123二进制逢 2 进 120、10b/0Bint a 0b1010;%d转十进制无直接格式需用itoa/ 循环printf(%d, 0b1010);→ 10八进制逢 8 进 180、1、2、3、4、5、6、70数字 00o1-8(新写法)int a 0o123/0123;%oprintf(%o, a);→ 123十六进制逢 16 进 1160~9、A~F / a~f0x/0Xint a 0x12;%x小写%X大写printf(%x, a);→ 12printf(%X, a);→ 122、超实用转换技巧重点2.1、先背熟 3 张万能表14 位二进制 ↔ 1 位十六进制必背00000 00011 00102 00113 0100401015 01106 01117 10008 100191010A 1011B 1100C 1101D 1110E1111F23 位二进制 ↔ 1 位八进制必背0000 0011 0102 01131004 1015 1106 111732 的幂次幂从0开始必备1,2,4,8,16,32,64,128,256,512,1024提醒所有进制互转优先走「二进制中转站」3、二进制 ↔ 十六进制规则从右往左4 位一组直接查表替换例10110101分组1011 0101 1011B01015→0xB5如果给一个16进制数0x3A转换成二进制0x3A30011A10100011 10104、二进制 ↔ 八进制规则从右往左3 位一组直接查表替换例1011011分组001 011 011→1 3 3如果给一个8进制数0o56 转换成二进制0o56 51016110→1011105、八进制 ↔ 十六进制先转二进制再分组转目标进制例0o135 → 二进制 001 011 101 → 4 位分组 0101 1101 →0x5D6、十进制 ↔ 二进制方法凑 2 的幂减法从大到小减 2 的幂减得掉写 1减不掉写 0。例十进制 8964 32 16 8 4 2 11 0 1 1 0 0 1→10110017、二进制 → 十进制只把是 1 的位对应的 2 的幂加起来即可。例10110 16 4 2 228、十进制 ↔ 十六进制方法除以 16 取余两步就出例123 123 ÷167 余 11B→0x7B9、十进制 ↔ 八进制除以 8 取余即可非常快。10、终极心算口诀一句话记住二转十六4 位一组二转八3 位一组十转二凑 2 的幂二转十1 位加对应幂八 / 十六互转先走二进制

更多文章