gpt4 book ai didi

java - 将字节(java 数据类型)值转换为位(仅包含 8 位的字符串)

转载 作者:搜寻专家 更新时间:2023-11-01 01:10:43 25 4
gpt4 key购买 nike

我需要将声明为字节数据类型的值转换为 8 位字符串。是否有任何 Java 库方法可以做到这一点?例如,它应该接受 -128 并输出“10000000”。此外,输入 -3 应该给出“11111101”。 (我手工转换了这些。)

在您认为这个问题已被多次回答之前,请让我解释一下我为什么感到困惑。

“byte”这个名字有点含糊。因此,很难遵循其他答案。对于我的问题,byte指的是占8位的java数据类型,其取值范围是-128到127。我也不是指“数组”字节”。我的问题是关于将单个值仅转换为其 8 位表示形式。仅此而已。

我试过这些:

byte b = -128;  //i want 10000000
Integer.toBinaryString(b); //prints 11111111111111111111111110000000
Integer.toString(b, 2); //prints -10000000

如果没有内置方法,您能否建议任何方法(也许是位移)?

最佳答案

尝试

Integer.toBinaryString(b & 0xFF); 

这给出了一个 float 长度格式,例如4 -> 100。似乎没有标准的解决方案来获得固定长度的格式,即4 -> 00000100。这是一个单行自定义解决方案(前缀为 0b)

String s ="0b" + ("0000000" + Integer.toBinaryString(0xFF & b)).replaceAll(".*(.{8})$", "$1");

关于java - 将字节(java 数据类型)值转换为位(仅包含 8 位的字符串),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14364054/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com