首页 > 解决方案 > 从二进制数java中删除前导零

问题描述

如何从二进制数中删除前导零?例如,我想使用 16(decimnal)= 0001 0000(binary) 并将其剪切为 1 0000 - 5bits 数。我在另一个函数中得到了循环,该函数只有在有特定的位计数器时才有效。如果我打印例如 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))

标签: javabit

解决方案


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

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

推荐阅读