How to convert a byte to its binary string representation(如何将字节转换为其二进制字符串表示形式)
问题描述
例如,一个字节B
中的位是10000010
,我怎样才能将这些位从字面上分配给字符串str
,即, str = "10000010"
.
For example, the bits in a byte B
are 10000010
, how can I assign the bits to the string str
literally, that is, str = "10000010"
.
编辑
我从二进制文件中读取字节,并存储在字节数组B
中.我使用 System.out.println(Integer.toBinaryString(B[i]))
.问题是
I read the byte from a binary file, and stored in the byte array B
. I use System.out.println(Integer.toBinaryString(B[i]))
. the problem is
(a) 当位以(最左边的)1 开始时,输出不正确,因为它将 B[i]
转换为负 int 值.
(a) when the bits begin with (leftmost) 1, the output is not correct because it converts B[i]
to a negative int value.
(b) 如果位以0
开头,则输出忽略0
,例如假设B[0]
有00000001,输出是 1
而不是 00000001
(b) if the bits begin with 0
, the output ignore 0
, for example, assume B[0]
has 00000001, the output is 1
instead of 00000001
推荐答案
使用整数#toBinaryString()
:
byte b1 = (byte) 129;
String s1 = String.format("%8s", Integer.toBinaryString(b1 & 0xFF)).replace(' ', '0');
System.out.println(s1); // 10000001
byte b2 = (byte) 2;
String s2 = String.format("%8s", Integer.toBinaryString(b2 & 0xFF)).replace(' ', '0');
System.out.println(s2); // 00000010
演示.
这篇关于如何将字节转换为其二进制字符串表示形式的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:如何将字节转换为其二进制字符串表示形式


- Safepoint+stats 日志,输出 JDK12 中没有 vmop 操作 2022-01-01
- 从 finally 块返回时 Java 的奇怪行为 2022-01-01
- C++ 和 Java 进程之间的共享内存 2022-01-01
- 如何使用WebFilter实现授权头检查 2022-01-01
- 将log4j 1.2配置转换为log4j 2配置 2022-01-01
- Jersey REST 客户端:发布多部分数据 2022-01-01
- value & 是什么意思?0xff 在 Java 中做什么? 2022-01-01
- Eclipse 插件更新错误日志在哪里? 2022-01-01
- Java包名称中单词分隔符的约定是什么? 2022-01-01
- Spring Boot连接到使用仲裁器运行的MongoDB副本集 2022-01-01