如何在10以外的基地进行数学运算?

时间:2014-04-07 15:48:39

标签: c algorithm

我想直接将二进制数转换为八进制数而不转换为基数10,我在math.stackexchange.com上找到了一些解决方案,但他们需要在该基础本身(不是10)中完成操作,所以有在10以外的基地进行操作的方式或算法? 我需要知道如何将数字从任何基数转换为任何基数。

2 个答案:

答案 0 :(得分:5)

将二进制转换为八进制(反之亦然)非常简单,因为2 ^ 3 = 8。

这意味着您只需要从最低有效位转到最高有效位,并将每组3位“转换”为各自的数字。

示例:

101 100 110:

110 -> 6
100 -> 4
101 -> 5

八进制翻译现在只需546。

答案 1 :(得分:1)

您只需要取每组3位数字,并从最低位开始将它们转换为八进制数:

010110111011110 (base 2)

010 110 111 011 110
 2   6   7   3   6  (base 8)