基于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)換問題
- 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)文章
Java中Https發(fā)送POST請(qǐng)求[親測(cè)可用]
這篇文章主要介紹了Java中Https發(fā)送POST請(qǐng)求[親測(cè)可用],本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-05-05java String 類的一些理解 關(guān)于==、equals、null
在對(duì)字符串的相等判斷,==判斷的是地址是否相同,equal()判斷的是字符值是否相同。大多數(shù)時(shí)候==跟equal()的結(jié)果都是相同的。2009-06-06Java之?dāng)?shù)組在指定位置插入元素實(shí)現(xiàn)
本文主要介紹了Java之?dāng)?shù)組在指定位置插入元素實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-01-01Stream distinct根據(jù)list某個(gè)字段去重的解決方案
這篇文章主要介紹了Stream distinct根據(jù)list某個(gè)字段去重,stream的distinct去重方法,是根據(jù) Object.equals,和 Object.hashCode這兩個(gè)方法來(lái)判斷是否重復(fù)的,本文給大家介紹的非常詳細(xì),需要的朋友可以參考下2023-05-05java開發(fā)CPU流水線與指令亂序執(zhí)行詳解
這篇文章主要為大家介紹了java開發(fā)CPU流水線與指令亂序執(zhí)行詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-09-09Mybatis如何實(shí)現(xiàn)@Select等注解動(dòng)態(tài)組合SQL語(yǔ)句
這篇文章主要介紹了Mybatis如何實(shí)現(xiàn)@Select等注解動(dòng)態(tài)組合SQL語(yǔ)句,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-07-07SpringBoot內(nèi)存數(shù)據(jù)導(dǎo)出成Excel的實(shí)現(xiàn)方法
這篇文章主要給大家介紹了關(guān)于SpringBoot內(nèi)存數(shù)據(jù)導(dǎo)出成Excel的實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12SpringCloud?Eureka服務(wù)注冊(cè)中心應(yīng)用入門詳解
這篇文章主要介紹了Spring?Cloud?Eureka服務(wù)注冊(cè)中心入門流程分析,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-07-07