bytecharjava
① java中byte與char的問題。
byte是位元組數據類型,是有符號型的,佔1個位元組;大小范圍為-128—127。
char是字元數據類型,是無符號型的,佔2位元組(Unicode碼);大小范圍是0—65535;char是一個16位二進制的Unicode字元,JAVA用char來表示一個字元。
區別:
1、Char是無符號型的,可以表示一個整數,不能表示負數;而byte是有符號型的,可以表示-128—127的數;
2、char可以表中文字元,byte不可以;
3、char、byte、int對於英文字元,可以相互轉化
對於你上面說的最後會出異常是因為你不能通過while對DataInputStream 無限制的讀取,DataInputStream 內容讀取完了之後就沒有數據可讀,固然會報錯。
你應該先判斷DataInputStream 是否可用,只有在可用的情況下能繼續讀取,應該改成:
DataInputStreamdi=newDataInputStream(newByteArrayInputStream(
s.getBytes()));
while(di.available()>0){
System.out.print((char)di.readByte());
}
文章參考:http://blog.csdn.net/luoweifu/article/details/7770588
② java中byte型和char型有什麼區別
byte位元組型,char字元型。1個byte是1個位元組,java採用unicode,2個位元組(16位)來表示一個字元
再看看別人怎麼說的。
③ java 怎麼由byte轉換為char
強制轉換就可以。
int len=bytes.length;
char [] arr=new char[len];
for(int i=0; i<len; i++){
arr[i] = bytes[i];
}
④ byte怎麼轉換為char
這是計算機中存儲信息的單位。char是字元型byte是位元組型(0-255)在參與算術運算是char類型會自動轉為整型;如字元A會轉為對應ASCII碼65.char是用來表示一個字元,而不是一個字,因為一個字要佔用兩個位元組。
而存儲一個ANSI字元只需一個位元組。注意,強調是ANSI字元,而不是Unicode字元。因為Unicode要佔用兩個位元組。byte類型是最自由的一種。
它就佔用一個位元組,但沒有定義這個位元組拿來干什麼。char定義為一個UnsignedByte類型。也就是無符號的一個位元組。它將一個位元組的8位全佔用了。
表示的數據范圍是0到255之間。你確定處理的字元串是標準的ANSI字元串,那不必轉換也可以直接一個位元組一個位元組地處理。要處理的字元串不定或是統一的Unicode字元串則要進行轉換後進行處理。
(4)bytecharjava擴展閱讀:
位元組(Byte )是計算機信息技術用於計量存儲容量的一種計量單位,作為一個單位來處理的一個二進制數字串,是構成信息的一個小單位。最常用的位元組是八位的位元組,即它包含八位的二進制數。
ASCII碼:一個英文字母(不分大小寫)佔一個位元組的空間。一個二進制數字序列,在計算機中作為一個數字單元,一般為8位二進制數。換算為十進制 ,最小值-128,最大值127。如一個ASCII碼就是一個位元組。
UTF-8編碼:一個英文字元等於一個位元組,一個中文(含繁體)等於三個位元組。中文標點佔三個位元組,英文標點佔一個位元組。
Unicode編碼:一個英文等於兩個位元組,一個中文(含繁體)等於兩個位元組。中文標點占兩個位元組,英文標點占兩個位元組。
任何數據類型的數組都需要 20 個位元組的內存空間,加上每一數組維數占 4 個位元組,再加上數據本身所佔用的空間。數據所佔用的內存空間可以用數據元數目乘上每個元素的大小加以計算。
例如,以 4 個 2位元組之 Integer 數據元所組成的一維數組中的數據,占 8 個位元組。這 8 個位元組加上額外的 24 個位元組,使得這個數組所需總內存空間為 32 個位元組。
參考資料來源:網路-Byte
⑤ char和byte是一個意思
char和byte這兩種數據類型容易相互混淆,他們的區別主要如下:
1、數據類型不同
byte是位元組數據類型,是有符號型的,可以表示-128—127的數;
char是字元數據類型,是無符號型的,可以表示一個整數,不能表示負數。
用法舉例:
chari=85;//U對應ASCII是85
byted3=127;//如果是byted3=128;會報錯
byted4=-128;//如果是byted4=-129;會報錯
2、佔用空間大小和大小范圍不同
byte佔1個位元組;大小范圍為-128—127 ;
char佔2位元組(Unicode碼);大小范圍是0—65535;char是一個16位二進制的Unicode字元,JAVA用char來表示一個字元。
3、另外char可以表示中文字元,byte不可以。用法舉例:
chare1='中',e2='國';
bytef=(byte)'中';//必須強制轉換否則報錯
⑥ 關於java中byte和char類型的問題
char 與 byte為兩種不同類型的變數,雖然他們的大小都為1個位元組,但是在Java中不可以自動轉換,這個是Java編譯器類型檢查比較嚴格,不允許隱式轉換,在C中則允許隱式轉換。這個不是大問題,記下來就行了。
⑦ java 詳細介紹short,byte,char三種類型,我分不清
byte:byte在java中占據一個位元組即用8位bit表示,因為是有符號數,所以它的表示範圍是-128-127.如果在運算過程中超出了范圍限制就出現溢出。
char:char在java中占據兩個位元組,即用16位表示一個char類型的數據。由於char是無符號的所以其表示範圍是0-65536.當計算超過其表示範圍時,系統會自動將結果轉換為int類型。
short:short在java中占據兩個位元組也是由16位表示,因為short是有符號數據故其表示範圍是-32768-32767
根據需要可用來節省內存的使用。
⑧ java裡面的char和byte怎麼轉換
java中,char轉化為byte的話,可以用參考如下方法:
String s=new String("1");
byte[] b=new byte[1];
b[0] = Byte.parseByte(""+s.charAt(0));
System.out.println(b[0]);
結果為:1,而不是ascii碼的值了。