導航:首頁 > 編程語言 > javabyte0xff

javabyte0xff

發布時間:2023-02-24 19:01:17

java中如何將字元串"0xff"轉為byte型即把"0xff"轉為-1

java中將字元串"0xff「轉為byte型,使用強制轉換,如下代碼:

packagecom.qiu.lin.he;


publicclassCeShi{

publicstaticvoidmain(String[]args){

byteb=(byte)Integer.parseInt("0xff".substring(2),16);
System.out.println(b);//輸出-1
}
}

輸出結果為:

Ⅱ java中的byte有什麼作用

在今天,byte位元組就是一個八位元組,使用其它位數的機器都進了博物館。 java也提供了一個byte數據類型,並且是基本類型。java byte是做為最小的數字來處理的,因此它的值域被定義為-128~127,也就是signed byte。不幸的是,byte的用作計數的時間遠少於用表達基本內存單元的時間。比如從stream里讀入一個雙位元組字元,我們先收到2個byte。為了把byte轉換成適當的形式,需要對byte值做一些比較,比如判斷字元集要比較其是否在某個編碼范圍內,比如GBK 0x8140~0xFEFE,然後new適當的string。 signed byte 把 0x00 ~ 0xff 映射成 0~127 -128~-1 兩段,注意當與literal比較時,java自動將literal識別成int 可以用 下面的小程序來驗證: 1 public class JavaByte 2 { 3 public static void main(String[] args) 4 { 5 byte b = 0; 6 for ( int i = 0; i <= 0xff; ++i ) 7 { 8 b = (byte)i; 9 System.out.print(" "+i+":"+b+", "); 10 } 11 } 12 } 當收到(0xC7B0)這個GBK字元時,要判斷 0x81 <= 0xC7 <= 0xFE 是否成立,實際變成判斷 -127 < -57 < -2,唔,萬幸,可以直接比較 low < ch < high。如果要判斷 0x00 <= 0xC7 <= 0x80 (ASC Char),這回麻煩了,變成判斷 (0 <= -57 <= 127) || ( 0x57 == -128 )。比較簡單的辦法用 (b+256)%256的辦法令其值回到0~255,或者用&0xff並賦給一個int。考慮到jvm里的byte其實也是32位的,所以在計劃用byte的地方,直接用integer並不會有什麼實際的損失,而 DataInputStream也提供了一個readUnsignedByte()方法返回的是int。所以真正的解決方案是忘掉byte,直接上 int。至於為什麼java沒有unsigned數據類型,照下面這個interview里Jams Golsing的意思,應該是java應該簡單而unsigned算術過於復雜了會讓大多數程序員產生誤解誤用:

Ⅲ Java:轉16進制時常見的【byte[i] & 0xFF】是什麼意思呢

int v ; 這里不論你賦值給v什麼值,v都會是四個位元組的整數
所以,調用Integer.toHexString(v); 出來的還是32位的字元串

b[i] & 0xFF只是保證了v的前三個位元組是0,只有最後一個位元組有數

Ⅳ java中關於&運算符 和 0xFF 的問題

260的2進制為100000100 由於0xFF是位元組操作 高位的1已經超界,所以260在強轉成byte後高位的1會丟失。 也就是
00000100
&
11111111
=
00000100 轉換成2進制就是等於4

4跟什麼運算能等於260?

因為260已經大於127,也就是大於1個位元組所以這里在反推回去的時候不能在進行8位的位元組操作了 就必須用16位的字操作了
260的2進制是
100000100
4的2進制是
00000100
結果很明顯 只需與
100000000 按位取或運算就能得到260

也就是 4 | 0x0100

Ⅳ Java:關於byte轉16進制的& 0xFF,我的理解正確嗎

/**
*Convertbyte[]tohexstring.這里我們可以將byte轉換成int,然後利用Integer.toHexString(int)
*來轉換成16進制字元串。
*@paramsrcbyte[]data
*@returnhexstring
*/
(byte[]src){
StringBuilderstringBuilder=newStringBuilder("");
if(src==null||src.length<=0){
returnnull;
}
for(inti=0;i<src.length;i++){
intv=src[i]&0xFF;
Stringhv=Integer.toHexString(v);
if(hv.length()<2){
stringBuilder.append(0);
}
stringBuilder.append(hv);
}
returnstringBuilder.toString();
}

Ⅵ java中的byte有什麼作用

在今天,byte位元組就是一個八位元組,使用其它位數的機器都進了博物館。 java也提供了一個byte數據類型,並且是基本類型。java byte是做為最小的數字來處理的,因此它的值域被定義為-128~127,也就是signed byte。不幸的是,byte的用作計數的時間遠少於用表達基本內存單元的時間。比如從stream里讀入一個雙位元組字元,我們先收到2個byte。為了把byte轉換成適當的形式,需要對byte值做一些比較,比如判斷字元集要比較其是否在某個編碼范圍內,比如GBK 0x8140~0xFEFE,然後new適當的string。 signed byte 把 0x00 ~ 0xff 映射成 0~127 -128~-1 兩段,注意當與literal比較時,java自動將literal識別成int 可以用 下面的小程序來驗證: 1 public class JavaByte 2 { 3 public static void main(String[] args) 4 { 5 byte b = 0; 6 for ( int i = 0; i <= 0xff; ++i ) 7 { 8 b = (byte)i; 9 System.out.print(" "+i+":"+b+", "); 10 } 11 } 12 } 當收到(0xC7B0)這個GBK字元時,要判斷 0x81 <= 0xC7 <= 0xFE 是否成立,實際變成判斷 -127 < -57 < -2,唔,萬幸,可以直接比較 low < ch < high。如果要判斷 0x00 <= 0xC7 <= 0x80 (ASC Char),這回麻煩了,變成判斷 (0 <= -57 <= 127) || ( 0x57 == -128 )。比較簡單的辦法用 (b+256)%256的辦法令其值回到0~255,或者用&0xff並賦給一個int。考慮到jvm里的byte其實也是32位的,所以在計劃用byte的地方,直接用integer並不會有什麼實際的損失,而 DataInputStream也提供了一個readUnsignedByte()方法返回的是int。所以真正的解決方案是忘掉byte,直接上 int。至於為什麼java沒有unsigned數據類型,照下面這個interview里Jams Golsing的意思,應該是java應該簡單而unsigned算術過於復雜了會讓大多數程序員產生誤解誤用:

Ⅶ java中如何將字元串"0xff"轉為byte型即把"0xff"轉為-1

Stringstr="ff";
Integerin=Integer.valueOf(str,16);

Integer.valueOf就是干這事的,第二個參數就是告訴它是多少進制

Ⅷ java byte轉換成字元串

1、將byte數組轉換成字元
byte[] b={(byte)0xB8,(byte)0xDF,(byte)0xCB,(byte)0xD9};
String str= new String (b);

2、將字元轉換成byte數組
String str = "XXXX";
byte[] sb = str.getBytes();

Ⅸ java 位元組 & 0xFF 什麼意思, <=0xF又是什麼意思

問題1:16進制字元串的作用主要是便於查看,每個位元組必然是兩位字元。 如果不轉換的話,字付中很多都是不可見字元,可能導致顯示錯亂,甚至被系統錯誤的解碼。
問題2: 網上的寫法是2進制的。 這樣可以一眼看出對應的位的變化。而你的2010是10進制的。你需要手工轉成2進制才能很好的確認值。
問題3:0xff換成2進制就是8個1,這樣與的話,其實就是取到了字元的低8位。 oxf就是15, 小於15的數會轉換成一個16進制數,你的代碼里希望是固定的兩個16進制數,所以當只會產生一個時要加個0

閱讀全文

與javabyte0xff相關的資料

熱點內容
桌面文件全部加密 瀏覽:401
6s怎麼外接u盤需要什麼app 瀏覽:131
linux查看文件許可權命令 瀏覽:685
安卓手游存檔怎麼用 瀏覽:761
linuxyum安裝ftp 瀏覽:690
村委會主任可以推行政命令嗎 瀏覽:102
電腦文件夾封面多張圖片 瀏覽:263
網吧總伺服器叫什麼 瀏覽:922
多個演算法解決同一個問題 瀏覽:455
小車解壓後我的購車發票呢 瀏覽:977
做app開發用什麼雲伺服器 瀏覽:177
linux網卡子介面 瀏覽:985
21歲職高畢業學程序員怎麼學 瀏覽:321
vs如何對單個文件編譯 瀏覽:6
為什麼有的電腦不能安裝python 瀏覽:75
金蝶迷你版加密狗檢測到過期 瀏覽:186
硬體描述語言編譯結果 瀏覽:655
程序員逆天改命 瀏覽:19
金斗雲伺服器 瀏覽:447
港口工程pdf 瀏覽:770