Java 将整数转换为具有固定位数的二进制

Java 将整数转换为具有固定位数的二进制,java,Java,在java中,将整数的二进制表示形式转换为具有固定位数的二进制数最简单的方法是什么(例如,如果我想将3转换为5位,那么结果将是00011)。在matlab中,我可以指定位数作为参数。要将n转换为位数: public static String intToBinary (int n, int numOfBits) { String binary = ""; for(int i = 0; i < numOfBits; ++i, n/=2) { switch (n % 2

在java中,将整数的二进制表示形式转换为具有固定位数的二进制数最简单的方法是什么(例如,如果我想将3转换为5位,那么结果将是00011)。在matlab中,我可以指定位数作为参数。

要将n转换为位数:

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;
}
公共静态字符串intToBinary(int n,int numobits){
字符串binary=“”;
对于(int i=0;i
如果要将
int
转换为二进制表示形式,需要执行以下操作:

String binaryIntInStr = Integer.toBinaryString(int);
int count = Integer.bitCount(int);
如果要获取
int
的位计数,需要执行以下操作:

String binaryIntInStr = Integer.toBinaryString(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是您感兴趣的固定位数。

可能有助于解决此问题,还有
integer.toBinaryString(int)
。第一行将二进制整数转换为十进制,然后将其解析为二进制。如果它是正确的,它将不会做任何事情,但它是不正确的。@EJP我已经重新编辑了答案,是现在吗?你忘了休息;上面代码中的语句。您将在每0后添加1位。但是。。。在这种情况下,我有“字符串索引超出范围:-3”…然后您可能需要:binaryString=binaryString.substring(binaryString.length()-numBits>=0?binaryString.length()-numBits:0);