【轉】bit、byte、位、字節、漢字的關系


UTF-8和UTF-16的區別?Unicode和UTF是什么關系? Unicode轉義字符(\u+4個十六進制)。遇到多個引號的時候轉義?
解釋:
   unicode是一種編碼方式,和ascii是同一個概念,而UTF是一種存儲方式(格式)。
數據存儲是以“字節”(Byte)為單位,數據傳輸是以“位”(bit)為單位,一個位就代表一個0或1(即二進制),每8個位(bit)組成一個字節(Byte)。 1KB=1024B,1KB=1024Byte=1024*8bit
===========================
下面這段解釋引用自他人的博客:
 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個字節 (但不排除,自己更改了默認設置);
引用結束
==================
以下這段文字引用字百度知道
英文一個字母是一字節。中國字比較復雜,1字節=8位,8位從0000 0000到1111 1111只能表示256個字符,2個字節是2*8=16位,從0000 0000 0000 0000到1111 1111 1111 1111可以表示65535個字符。 
6萬多個足以表示我們經常用的那些字了。所以我們用2字節表示漢字。
如果用3個字節有很多不常用的字又占了很多不必要的存儲空間,所以我們用2個字節而不是1個或者3個表示漢字的國際碼。
 
          
引用結束
==================
為什么 1KB=1024B? 
一開始我也感覺有點怪,KB和B之間不是應該是1000么?其實計算機就是這么規定的,就像  1 byte  = 8  bit  沒有什么理由,規定了你拿來用就好了。


免責聲明!

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



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