将 16 位二进制值转换为八进制

Posted

技术标签:

【中文标题】将 16 位二进制值转换为八进制【英文标题】:Convert a 16 Bit Binary Value to Octal 【发布时间】:2017-09-27 21:01:06 【问题描述】:

您好,我想知道一种快速简便的方法来执行此二进制值的数字转换:

1000100000001011 为八进制。

在十六进制中,我可以相当快地手动转换为 0xAA0B。要得出这个二进制的十进制值需要更多的工作,但最终你可以得到 32,768 + 2,048 + 11 = 34,827

我知道八进制模式的工作方式类似于 8 = 10, 9 = 11 .... 16 = 20, 17 = 21 ... 24 = 30, 等。但是我无法转换无需大量努力即可转换为八进制。

谁能帮我解决这个问题,也许可以提供一种速记方法来帮助将二进制转换为八进制。编程示例很好,但我真的在寻找解释。谢谢

【问题讨论】:

每个八进制数字(octit?)占用 3 位。将二进制数分成 3 位组(当然从 LSB 开始)并转换。如果你在十六进制中使用相同的技巧,分成 4 位组,你会看到它实际上是 0x880B。 【参考方案1】:

最快的方法是将二进制数从右端分解为 3 位块,根据需要从左侧填充 0,然后将每个块转换为八进制数字。

例如,

1000100000001011 -> 001 000 100 000 001 011 [2 0's added to the left]
                 ->   1   0   4   0   1   3
                 -> 104013

【讨论】:

这正是我所需要的。谢谢!

以上是关于将 16 位二进制值转换为八进制的主要内容,如果未能解决你的问题,请参考以下文章

浮点数的十六进制表示

将 int16 转换为 16 位大端二进制

C语言如何把11位16进制字符串转成16进制数?

16位二进制数怎么转换为BCD码

是否可以将 16 位二进制数转换为两个字符并将其保存到文本文件中?

如何转换从文本文件中读取的整数并存储为具有16位整数的二进制文件?