将二进制转换为八进制或十六进制。哪一个很容易(C语言编译器)

时间:2011-09-22 04:37:53

标签: c compiler-construction

我正在阅读一些与C编程语言相关的问题。我发现这个问题令人困惑。 http://www.indiabix.com/c-programming/bitwise-operators/discussion-495

问题是“交流编译器很容易将二进制转换为十六进制或二进制转换为八进制。给出的解释是每4位一组并将其转换为十六进制..但很容易将3位分组并转换它到八进制。或者人类容易转换八进制而不是十六进制?

编译器将二进制转换为八进制/十六进制

的最简单方法是什么

2 个答案:

答案 0 :(得分:1)

所有这些都很容易。然而,在计算世界中,八进制的使用很少与十六进制相比。唯一非常重要的用途是在unix样式权限上,除了它是十六进制和二进制之后带头(以及常见的人类友好风格的十进制)。

答案 1 :(得分:0)

八进制和十六进制都可以通过分组来转换为二进制(在八进制的情况下为3,在十六进制的情况下为4) http://www.ascii.cl/conversion.htm

但问题是由编译器分配的内存是2 ^ n而你不能分割2 ^ n 3个大小的块,而它可以很容易地用十六进制来完成,其中块大小为4

例如使用32位的gcc concider整数 它不能分成3位32/3 = 10.666 而它可以分成4位块32/4 = 8

希望我明确指出。