字符和字節的區別,以及byte和char的區別


字節(Byte)是計量單位,表示數據量多少,是計算機信息技術用於計量存儲容量的一種計量單位,通常情況下一字節等於八位。

字符(Character)計算機中使用的字母、數字、字和符號,比如'A'、'B'、'$'、'&'等。

一般在英文狀態下一個字母或字符占用一個字節,一個漢字用兩個字節表示。

字節與字符:

ASCII 碼中,一個英文字母(不分大小寫)為一個字節,一個中文漢字為兩個字節。
UTF-8 編碼中,一個英文字為一個字節,一個中文為三個字節。
Unicode 編碼中,一個英文為一個字節,一個中文為兩個字節。
符號:英文標點為一個字節,中文標點為兩個字節。例如:英文句號 . 占1個字節的大小,中文句號 。占2個字節的大小。
UTF-16 編碼中,一個英文字母字符或一個漢字字符存儲都需要 2 個字節(Unicode 擴展區的一些漢字存儲需要 4 個字節)。
UTF-32 編碼中,世界上任何字符的存儲都需要 4 個字節。


Byte & Char的區別

byte 是字節數據類型,是有符號型的,占1個字節;大小范圍為-128—127.
char 是字符數據類型,是無符號型的,占2字節(Unicode碼 );大小范圍是0—65535;
char 是一個16位二進制的Unicode字符,JAVA用char來表示一個字符 。

通過代碼示例來比較二者區別:

1、Char是無符號型的,可以表示一個整數,不能表示負數;而byte是有符號型的,可以表示-128—127 的數;如

char c = (char) -90;    // char不能識別負數,必須強制轉換否則報錯,即使強制轉換之后,也無法識別 .
System.out.println(c);  

byte d1 = 1;  
byte d2 = -1;  
byte d3 = 127;          // 如果是byte d3 = 128;會報錯  
byte d4 = -128;         // 如果是byte d4 = -129;會報錯  

System.out.println(d1);  
System.out.println(d2);  
System.out.println(d3);  
System.out.println(d4);  

輸出結果如下:

2、char可以表中文字符,byte不可以,如:

char e1 = '我', e2 = '你';
byte f= (byte) '他';       //必須強制轉換否則報錯  
System.out.println(e1);  
System.out.println(e2);  
System.out.println(f); 

輸出:

3、char、byte、int對於英文字符,可以相互轉化,如:

byte g = 'a';   //b對應ASCII是98  
char h = (char) g;  
char i = 85;    //U對應ASCII是85  
int j = 'h';    //h對應ASCII是104  

System.out.println(g);  
System.out.println(h);  
System.out.println(i);  
System.out.println(j);

輸出結果:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM