java - 从二进制数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))
解决方案
如果二进制数是字符串的形式,你可以这样做。
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
推荐阅读
- php - 'phing' 未被识别为内部或外部命令,
- django - Django PayPal 延迟
- java - 我希望任务栏可见并最大化我的框架
- javascript - 用于保留状态的下一个和上一个按钮
- mysql - 在vscode中通过sql toos连接mysql时看不到数据库中的表
- django - 我正在尝试在 django 中创建一个可写的嵌套序列化程序,但无法正确使用 post 方法
- assembly - Bomb Lab Phase_5 字符串长度
- svg - 如何让 SVG 文件也显示在 PDF 文件中
- python - 如何在 Python 中包装箱形图可视化的 x 轴标签?
- python - Python mysql更新不更新