java - java中如何将字节转换为二进制?

标签 java binary byte

我尝试通过代码从 10000101 转换为 -123

byte sum = (byte) (Integer.valueOf(10000101, 2) & 0xffff) "; 

现在我不知道如何从-123转换回10000101。

关于使用java API进行转换有什么建议吗?

最佳答案

稍微扩展一下 David Wallace 的评论,您可以使用以下代码来完成:

    String fromByteToString = String.format("%8s", Integer.toBinaryString(sum & 0xFF)).replace(' ', '0');
    System.out.println(fromByteToString);

使用 sum & 0xFF 执行按位 AND 运算:

-123 = 11111111111111111111111110000101
0xFF = 00000000000000000000000011111111
res. = 00000000000000000000000010000101

请注意,在这种情况下,replace(' ', '0') 不是必须的,因为二进制结果字符串以 1 开头 (10000101)。

关于java - java中如何将字节转换为二进制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40691098/

相关文章:

java - 刚刚遇到这个问题。 java IO 没有什么困难

struct - 如何在没有反射的情况下将结构转储到字节数组中?

c++ - 给定一个整数N> 0,区间[0,2 ^ N)中有多少个整数恰好有N-1个设置位?编写返回正确答案的简短函数

java - 为什么输入流的返回类型不是int?

java - 使用 MongoDB runCommand 方法

java,JList位置

java - 我的 logcat 到底是什么意思,我该如何解决它?

c - Ardu-IMU将数据发送到Arduino

r - 我如何在 R 中的基数系统上执行数学运算

python - 将Python序列输入Cython数组(并返回)