加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

如何将二进制字符串转换为java中2字节的字节数组

发布时间:2020-12-14 05:54:47 所属栏目:Java 来源:网络整理
导读:我有二进制字符串String A =“1000000110101110”.我想在 java中将此字符串转换为长度为2的字节数组 我已经采取了this链接的帮助 我试图通过各种方式将其转换为字节 我先将该字符串转换为十进制,然后将代码应用于存储到字节数组中 int aInt = Integer.parseI
我有二进制字符串String A =“1000000110101110”.我想在 java中将此字符串转换为长度为2的字节数组

我已经采取了this链接的帮助

我试图通过各种方式将其转换为字节

>我先将该字符串转换为十进制,然后将代码应用于存储到字节数组中

int aInt = Integer.parseInt(A,2);
        byte[] xByte = new byte[2];
    xByte[0] = (byte) ((aInt >> 8) & 0XFF);
    xByte[1] = (byte) (aInt & 0XFF);
    System.arraycopy(xByte,record,xByte.length);

但是存储到字节数组中的值是负数

xByte[0] :-127
xByte[1] :-82

哪个是错误的值.

我也试过用

byte[] xByte = ByteBuffer.allocate(2).order(ByteOrder.BIG_ENDIAN).putInt(aInt).array();

但它会在上面的行中引发异常

java.nio.Buffer.nextPutIndex(Buffer.java:519)     at
  java.nio.HeapByteBuffer.putInt(HeapByteBuffer.java:366)   at
  org.com.app.convert.generateTemplate(convert.java:266)

我现在该怎么做才能将二进制字符串转换为2字节的字节数组?在java中是否有任何内置函数来获取字节数组

解决方法

你得到的答案
xByte[0] :-127
 xByte[1] :-82

是正确的.

这被称为2的赞美Represantation.
第1位用作有符号位.

0 for +ve
1 for -ve

如果第1位为0,则计算为常规位.
但如果第1位为1,则从128中扣除7位的值,并以-ve形式呈现答案.

在你的情况下
第一个值是10000001
所以1(第1位)用于-ve和128-1(最后7位)= 127
所以价值是-127

有关详细信息,请参阅2的补码表示.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读