1. 一個int數值按照規格「佔2個位元組,低位在前,高位在後」 用java怎麼實現
65535是個不當的抄例子,
二進制的2個位元組
11111111 11111111
誰先隨後都沒有區別。
「低位在前,高位在後」是小端數
Java在輸出時可以
short s=(short)0xABCD;//原數ABCD二個位元組
byte a[]=new byte[2];//准備兩個位元組
a[0]=(byte)(s&0xff); //獲得低位位元組
a[1]=(byte)(s>>>8);//獲得高位位元組
outputstream.write(a);//在輸出流把數組a依次寫入,就寫了一個小端數。
2. 一個int數值按照規格「佔2個位元組,低位在前,高位在後」 用JAVA怎麼實現。舉例65535會是多少
65535是個抄不當的例子,
二進制的2個位元組
11111111 11111111
誰先隨後都沒有區別。
「低位在前,高位在後」是小端數
Java在輸出時可以
short s=(short)0xABCD;//原數ABCD二個位元組
byte a[]=new byte[2];//准備兩個位元組
a[0]=(byte)(s&0xff); //獲得低位位元組
a[1]=(byte)(s>>>8);//獲得高位位元組
outputstream.write(a);//在輸出流把數組a依次寫入,就寫了一個小端數。
3. java 16進制高低位轉換問題
將數據轉換成16進制,可以用InteInteger.toHexString()這個方法。
將16進制轉換成10進制,可以用intValue()方法。
高低位轉換就不知道了哦。。。
下面是測試代碼,希望能幫到你~!
public class DataTransfer {
public static void main(String[] args) {
// TODO Auto-generated method stub
Integer a = -1;
System.out.println(Integer.toHexString(a));
Integer b = 0xff;
System.out.println(b.intValue());
}
}
下面這個是在網上找到的,高低位轉換:
// Java讀取後,順序已經反了
int javaReadInt = ;
// 將每個位元組取出來
byte byte4 = (byte) (javaReadInt & 0xff);
byte byte3 = (byte) ((javaReadInt & 0xff00) >> 8);
byte byte2 = (byte) ((javaReadInt & 0xff0000) >> 16);
byte byte1 = (byte) ((javaReadInt & 0xff000000) >> 24);
// 拼裝成 正確的int
int realint = (byte1& 0xff)<<0 + (byte2& 0xff)<<8 + (byte3& 0xff)<< 16 +(byte4& 0xff)<<24 ;