从二进制数中删除前导零 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
如何从二进制数中删除前导零?例如,我想使用 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