【发布时间】:2010-10-12 04:03:02
【问题描述】:
我正在尝试将数字作为二进制字符串存储在数组中,但我需要指定将其存储为多少位。
例如,如果我需要用两位存储 0,我需要一个字符串“00”。或者 1010 有 6 位所以“001010”。
谁能帮忙?
编辑:谢谢大家,因为我一般在数学/编程方面都很垃圾,所以我选择了最简单的解决方案,即 David 的解决方案。比如:
binaryString.append(Integer.toBinaryString(binaryNumber));
for(int n=binaryString.length(); n<numberOfBits; n++) {
binaryString.insert(0, "0");
}
它似乎工作得很好,所以除非它效率很低,否则我会用它。
【问题讨论】:
-
这不适用于负数和大于 2^31 的数字,因为它们不适合 Java 整数。 BigInteger 自动调整用于存储值的位数。您仍然可以使用填充方法在前面插入 0。
-
对不起,我不知道标记接受的事情。感谢费尔南多的提醒,但我认为对于任何负数或任何大于 2^16 的数字都不需要这样做,所以我想这应该没问题。无论如何,我会看看 BigInteger。