javabyte轉int
㈠ 在java中,byte類型數據在運算之前要轉換成int類型數據。
byte類型數據是不能直接相加的,相加會自動類型會轉換int型,所以你再賦值給byte
型變數要強制類型轉換成byte型如下:
c
=
(byte)(a+b);
註:自動類型轉換:小類型轉大類型
如
byte佔一個位元組,int佔4個位元組
強制類型轉換:大類型轉小類型
㈡ java 如何將byte[4]數組轉換成一個int型數據
java中將4位元組的byte數組轉成一個int值的工具方法如下:
/**
* @param byte[]
* @return int
*/
public static int byteArrayToInt(byte[] b){
byte[] a = new byte[4];
int i = a.length - 1,j = b.length - 1;
for (; i >= 0 ; i--,j--) {//從b的尾部(即int值的低位)開始數據
if(j >= 0)
a[i] = b[j];
else
a[i] = 0;//如果b.length不足4,則將高位補0
}
int v0 = (a[0] & 0xff) << 24;//&0xff將byte值無差異轉成int,避免Java自動類型提升後,會保留高位的符號位
int v1 = (a[1] & 0xff) << 16;
int v2 = (a[2] & 0xff) << 8;
int v3 = (a[3] & 0xff) ;
return v0 + v1 + v2 + v3;
}
㈢ java byte類型是如何自動轉換成int類型的
b的代碼是0xf1,既是11110001
然後轉換成int, 變為11111111 11111111 11111111 11110001 一共是32位
然後b>>>4, 然後變為11111111 11111111 11111111 11111111
d是byte型,然後截斷,變為111111111
希望能幫到你~!
㈣ java中byte[]轉換成int
java中byte轉換為 int有兩種情況,一種是要求保持值不變,例如進行數值計算,可採用強制類型轉換:int i = (int) aByte;
另一種是要求保持最低位元組中各個位不變,3個高位元組全部用0填充,例如進行編解碼操作,
則需要採用位操作:int i = b & 0xff;
int InputStream.read()
該函數返回一個int類型,范圍從0至255,如果到達流末尾,返回-1。通過ByteArrayInputStream的源碼可以看到是如何從byte轉到int
public synchronized int read() {
return (pos < count) ? (buf[pos++] & 0xff) : -1;
}
注意,不是自動轉的,需要強製做處理。
㈤ java如何將byte類型數組變成int類型的數組
每4個byte轉化成一個int,使用位運算,大致如下
大端序:
int[i]=byte[4*i]<<24|byte[4*i+1]<<16|byte[4*i+2]<<8|byte[4*i+3];
小端序:
int[i]=byte[4*i]|byte[4*i+1]<<8|byte[4*i+2]<<16|byte[4*i+3]<<24;
㈥ java如何將byte[4]數組轉換成一個int型數據
byte[] bs = new byte[4];x0dx0abs[0] = 1;x0dx0abs[1] = 2;x0dx0abs[2] = 3;x0dx0abs[3] = 4;x0dx0ax0dx0aint r = 0;x0dx0aPipedOutputStream pos = new PipedOutputStream();x0dx0aPipedInputStream pis = new PipedInputStream();x0dx0a//連接管道x0dx0apis.connect(pos);x0dx0aDataInputStream dis = new DataInputStream(pis);x0dx0aDataOutputStream dos = new DataOutputStream(pos);x0dx0a//先寫4個位元組x0dx0ados.write(bs,0,bs.length);x0dx0a//讀取整型x0dx0ar = dis.readInt();x0dx0ax0dx0aSystem.out.println(r);x0dx0adis.close();x0dx0ados.close();