package com.suypower.chengyu.test;
?
public class ByteTest {
?
?/**
??* byte 8 bits -128 - + 127
??* 1 bit = 1 二進制數據
??* 1 byte = 8 bit
??* 1 字母 = 1 byte = 8 bit(位)
??* 1 漢字 = 2 byte = 16 bit
??*/
?public static void main(String[] args) {
??// TODO Auto-generated method stub
??byte b1 = 127;
??byte b2 = -128;
??byte b3 = 'a';
??byte b4 = 'A'; // 一個字母 = 1 byte = 8 bit
// ?byte b5 ='aa'; ?這就錯了
// ?byte b6 ='中'; 這就錯了 一個漢字 2個字節 16bit
??short s1 = '啊'; // 一個漢字 2個字節 16bit short 是 16 bit位的
// ?short s2 = '漢字'; ?// 2個漢字 4個字節 32 bit int 是32 bit的
// ?int i1 = '漢字'; ?但是 int 是數字類型的 , char 是 16 bit的 = 2 byte = 一個漢字
??char c1 = '汗';
// ?byte 轉換 string
??String string = "中文";
??byte by[] = string.getBytes();
??String str = new String(by);
??System.out.println("str="+str);
?}
?
}
?
==================================================================================
[Java-原創] bit、byte、位、字節、漢字、字符
bit、byte、位、字節、漢字的關系
??????? 1 bit???? = 1? 二進制數據
??????? 1 byte? = 8? bit
??????? 1 字母 = 1? byte = 8 bit
??????? 1 漢字 = 2? byte = 16 bit
1. bit:位
??? 一個二進制數據0或1,是1bit;
2. byte:字節
??? 存儲空間的基本計量單位,如:MySQL中定義 VARCHAR(45)? 即是指 45個字節;
??? 1 byte = 8 bit
3. 一個英文字符占一個字節;
??? 1 字母 = 1 byte = 8 bit
4. 一個漢字占2個字節;
??? 1 漢字 = 2 byte = 16 bit
5. 標點符號
??? A>.? 漢字輸入狀態下,默認為全角輸入方式;
??? B>.? 英文輸入狀態下,默認為半角輸入方式;
??? C>.? 全角輸入方式下,標點符號占2字節;
??? D>.? 半角輸入方式下,標點符號占1字節;
??? 故:漢字輸入狀態下的字符,占2個字節 (但不排除,自己更改了默認設置);
??????????? 英文輸入狀態下的字符,占1個字節 (但不排除,自己更改了默認設置);
?