【发布时间】:2019-10-29 17:44:55
【问题描述】:
我需要将十进制转换为二进制,将每个数字保存在一个大小为 10 的数组中。
实际上,我可以简单地将十进制更改为二进制,但我对它的数字有困难。
假设int a = 3,那么它的二进制形式是11。
但我需要将它保存在大小为10 的一维数组中,以打印为0000000011,而不仅仅是11。
再举一个例子,如果我输入十进制87,我的代码应该打印01010111。
如何计算每个数字并将它们保存到数组中的正确位置?
【问题讨论】:
-
你能解释一下为什么需要一个大小为 10 的数组吗?位以 2 的幂存储。4 位、8 位、16 位、32 位等。10 位不允许存储 16 位整数允许的最大值,并且至少有 2 位为空,对于 8 位整数。另外,您是否期望有符号整数?如果是这样,有一点保留来存储标志。它是小端架构上最左边的一个,而大端架构上最右边。在解决您的问题之前,有很多问题需要回答。
-
关于:
01010111.这是0x67,而不是0xB7这种错误可能是造成您很多困惑的根本原因。也许您的意思是:10110111.