【发布时间】:2015-06-06 21:40:38
【问题描述】:
在java中获取整数的二进制表示为具有固定位数的二进制数的最简单方法是什么(例如,如果我想用5位转换3,那么结果将是00011)。在 matlab 中,我可以指定位数作为参数。
【问题讨论】:
-
Left padding a String with zeros 和
Integer.toBinaryString(int)可能有助于解决这个问题。
标签: java
在java中获取整数的二进制表示为具有固定位数的二进制数的最简单方法是什么(例如,如果我想用5位转换3,那么结果将是00011)。在 matlab 中,我可以指定位数作为参数。
【问题讨论】:
Integer.toBinaryString(int) 可能有助于解决这个问题。
标签: java
将 n 转换为 numbOfBits 位:
public static String intToBinary (int n, int numOfBits) {
String binary = "";
for(int i = 0; i < numOfBits; ++i, n/=2) {
switch (n % 2) {
case 0:
binary = "0" + binary;
break;
case 1:
binary = "1" + binary;
break;
}
}
return binary;
}
【讨论】:
如果你想将int 转换成它的二进制表示,你需要这样做:
String binaryIntInStr = Integer.toBinaryString(int);
如果您想获取int 的位数,您需要这样做:
int count = Integer.bitCount(int);
但是你不能将整数的二进制表示为具有固定位数的二进制数,例如,7 有 3 位,但你不能设置它的位数2 或 1。因为您不会从具有 2 位或 1 位计数的二进制表示中得到 7。
【讨论】:
这是一个简单的方法:
String binaryString = Integer.toBinaryString(number);
binaryString = binaryString.substring(binaryString.length() - numBits);
其中 number 是要转换的整数,numBits 是您感兴趣的固定位数。
【讨论】: