基于java中byte數(shù)組與int類型的轉(zhuǎn)換(兩種方法)
java中byte數(shù)組與int類型的轉(zhuǎn)換,在網(wǎng)絡(luò)編程中這個(gè)算法是最基本的算法,我們都知道,在socket傳輸中,發(fā)送、者接收的數(shù)據(jù)都是 byte數(shù)組,但是int類型是4個(gè)byte組成的,如何把一個(gè)整形int轉(zhuǎn)換成byte數(shù)組,同時(shí)如何把一個(gè)長(zhǎng)度為4的byte數(shù)組轉(zhuǎn)換為int類型。下面有兩種方式。
public static byte[] int2byte(int res) {
byte[] targets = new byte[4];
targets[0] = (byte) (res & 0xff);// 最低位
targets[1] = (byte) ((res >> 8) & 0xff);// 次低位
targets[2] = (byte) ((res >> 16) & 0xff);// 次高位
targets[3] = (byte) (res >>> 24);// 最高位,無(wú)符號(hào)右移。
return targets;
}
public static int byte2int(byte[] res) {
// 一個(gè)byte數(shù)據(jù)左移24位變成0x??000000,再右移8位變成0x00??0000
int targets = (res[0] & 0xff) | ((res[1] << 8) & 0xff00) // | 表示安位或
| ((res[2] << 24) >>> 8) | (res[3] << 24);
return targets;
}
第二種
public static void main(String[] args) {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
DataOutputStream dos = new DataOutputStream(baos);
try {
dos.writeByte(4);
dos.writeByte(1);
dos.writeByte(1);
dos.writeShort(217);
} catch (IOException e) {
e.printStackTrace();
}
byte[] aa = baos.toByteArray();
ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray());
DataInputStream dis = new DataInputStream(bais);
try {
System.out.println(dis.readByte());
System.out.println(dis.readByte());
System.out.println(dis.readByte());
System.out.println(dis.readShort());
} catch (IOException e) {
e.printStackTrace();
}
try {
dos.close();
dis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
以上這篇基于java中byte數(shù)組與int類型的轉(zhuǎn)換(兩種方法)就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- 深入了解Java中String、Char和Int之間的相互轉(zhuǎn)換
- java判斷String類型是否能轉(zhuǎn)換為int的方法
- Java中string和int的互相轉(zhuǎn)換問(wèn)題
- Java中byte、byte數(shù)組與int、long的轉(zhuǎn)換詳解
- 在Java中int和byte[]的相互轉(zhuǎn)換
- java byte數(shù)組與int,long,short,byte的轉(zhuǎn)換實(shí)現(xiàn)方法
- java中l(wèi)ong數(shù)據(jù)類型轉(zhuǎn)換為int類型
- 在Java中將double轉(zhuǎn)換為int的操作方法
相關(guān)文章
解決@ResponseBody作用在返回類型為String的方法時(shí)的坑
這篇文章主要介紹了解決@ResponseBody作用在返回類型為String的方法時(shí)的坑,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-06-06
Java關(guān)于List集合去重方案詳細(xì)介紹
實(shí)際項(xiàng)目開發(fā)中,很多業(yè)務(wù)場(chǎng)景下都會(huì)遇見集合去重。在說(shuō)到List集合去重之前,首先我們回顧下普通類型的list如何去重2021-09-09
SpringBoot+WebSocket搭建簡(jiǎn)單的多人聊天系統(tǒng)
WebSocket是一種在單個(gè)TCP連接上進(jìn)行全雙工通信的協(xié)議。這是一種比較官方的說(shuō)法,簡(jiǎn)單點(diǎn)來(lái)說(shuō)就是,在一次TCP連接中,通信的雙方可以相互通信。這篇文章主要介紹了SpringBoot+WebSocket搭建簡(jiǎn)單的多人聊天系統(tǒng),需要的朋友可以參考下2019-10-10
java序列化和serialVersionUID的使用方法實(shí)例
這篇文章主要介紹了java序列化和serialVersionUID的使用方法實(shí)例的相關(guān)資料,這里說(shuō)明很詳細(xì)的使用方法讓你徹底學(xué)會(huì),需要的朋友可以參考下2017-08-08
Spring Security賬戶與密碼驗(yàn)證實(shí)現(xiàn)過(guò)程
這篇文章主要介紹了Spring Security賬戶與密碼驗(yàn)證實(shí)現(xiàn)過(guò)程,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧2023-03-03
Spring Security無(wú)法調(diào)用接口錯(cuò)誤的問(wèn)題解決
記錄一下之前在寫程序的時(shí)候遇到的問(wèn)題,Spring Security無(wú)法調(diào)用接口錯(cuò)誤的問(wèn)題,本文就來(lái)介紹一下解決方法,感興趣的可以了解一下2023-08-08
Java中ArrayList與順序表的概念與使用實(shí)例
順序表是指用一組地址連續(xù)的存儲(chǔ)單元依次存儲(chǔ)各個(gè)元素,使得在邏輯結(jié)構(gòu)上相鄰的數(shù)據(jù)元素存儲(chǔ)在相鄰的物理存儲(chǔ)單元中的線性表,下面這篇文章主要介紹了Java?ArrayList與順序表的相關(guān)資料,需要的朋友可以參考下2022-01-01
Mybatis-Plus 條件構(gòu)造器 QueryWrapper 的基本用法
這篇文章主要介紹了Mybatis-Plus - 條件構(gòu)造器 QueryWrapper 的使用,通過(guò)實(shí)例代碼給大家介紹了查詢示例代碼及實(shí)現(xiàn)需求,代碼簡(jiǎn)單易懂,對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-09-09

