String型別的二進制轉換為byte
/**
由于Ide 編碼問題,可能會出現顯示的值不是預期的 0x0f,0xff而是帶有正負的十進制
*這是由于顯示編碼原因,但實際上底層還是轉換為byte型別的物件,
可以使用js的new String('hex')查看
*/
String str = "0000111111111111";
//將str轉換為10進制,這里要注意,由于int型別長度限制,str中最多存放三個八位二進制數
int parseInt = Integer.parseInt(str, 2);
//新建byte陣列
byte[] bytes = new byte[8];
//定義陣列變化長度變數
int j = 0;
/*
計算,
每8位算一個位元組計算,可以看出是兩個byte位元組
將二進制向右移動 8*(length-i-1)個位置,這樣相當于是 00001111 & 0xff 11111111 & 0xff
& 0xff為了保證是16進制
*/
for (int i = 0; i < str.length() / 8; i++) {
byte byte_i = (byte)((parseInt >> 8*((str.length()/8)-i-1)) & 0xff);
//賦值
bytes[j] = byte_i;
j++;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/214394.html
標籤:Java
上一篇:兄弟們,幫幫小白
