从二进制数中删除前导零 java

Removing leading Zeros from binary number java

如何从二进制数中删除前导零?例如,我想使用 16(decimnal)= 0001 0000(binary) 并将其剪切为 1 0000 - 5 位数字。我在另一个函数中得到了循环,它只有在有特定的位计数器时才有效。如果我打印例如 0-16 范围内的 4 位数字并获得随机数(介于 8-15 之间),它就会起作用。我不想使用任何字符串转换。

数字范围:

List<Integer> integers = IntStream.range(0, number).boxed().collect(Collectors.toList())

转换为位数:

((int)(Math.log(integers.get(i)) / Math.log(2) + 1))

如果二进制数是字符串形式,可以这样写。

String s = "0000000000000000100000000010110";
int i = s.indexOf('1');
if (i >= 0) {
    s = s.substring(i);
}
System.out.println(s);

版画

100000000010110

要获取没有前导零的 int 二进制数,只需执行以下操作。

int v = 202;
String s = Integer.toBinaryString(v);
System.out.println(v);

版画

11001010