将 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 位二进制值转换为八进制的主要内容,如果未能解决你的问题,请参考以下文章