日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java short转byte_java基础之short转换byte[]

發布時間:2023/12/16 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java short转byte_java基础之short转换byte[] 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

最近做個通信項目使用UDP Socket,所以數據的接發都與byte[]有關,

基本類型與byte[]轉換作為基礎知識,需要mark一下.?0x0與0x00的區別是前者4位,后者8位.

ByteArrayOutputStream buf = new ByteArrayOutputStream();

DataOutputStream out = new DataOutputStream(buf);

out.writeShort(301);

byte[] b1 = buf.toByteArray();

for(byte bb : b1) {

System.out.print(Integer.toHexString(bb & 0xFF) + " ");

}

byte[] buf2 = {0x01,0x2d};

ByteArrayInputStream bintput = new ByteArrayInputStream(buf2);

DataInputStream dintput = new DataInputStream(bintput);

short i = dintput.readShort();

System.out.print(i);

//io的各種關閉省略..

如果把301定義成int,那么轉換后byte[]的長度是4,內容是0x00 0x00 0x01 0x2d,因為int型占4byte32位,而short是2byte16位,同時注意取值范圍.

public static int byte2ToUnsignedShort(byte[] bytes, int off) {

int high = bytes[off];

int low = bytes[off + 1];

return (high << 8 & 0xFF00) | (low & 0xFF);

}

public static byte[] unsignedShortToByte2(int s) {

byte[] targets = new byte[2];

targets[0] = (byte) (s >> 8 & 0xFF);

targets[1] = (byte) (s & 0xFF);

return targets;

}

總結

以上是生活随笔為你收集整理的java short转byte_java基础之short转换byte[]的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。