以狼煙爲例,那麼只有點火和沒點兩種狀態,沒法準確知道敵軍的數量,這個時候就有人想到了一種表示方法優化
每一個狼煙均可以表示兩種狀態,點火和沒點兩種狀態,分別用0和1表示編碼
第1個狼煙:點着表示1個敵人,沒點表示沒有敵人code
0 1blog
第2個狼煙:沒有點着的表示沒有敵人,只點着第一個狼煙表示來了一個敵人,只點着第二個狼煙表示來了2個敵人,2個狼煙都點着表示3個敵人ci
0 1 0 2 unicode
00 01 10 11it
第三個狼煙:沒有點着的時候表示沒有敵人,只點第一個狼煙表示來了一個敵人,只點第二個狼煙表示來了2個敵人,只點第三個狼煙表示來了4個敵人,三個都點表示來了7個敵人二進制
0 1 0 2 0 4方法
000 001 011 010 100 101 111 101im
以此類推
第八個狼煙: 最多可表示255個敵人
0 1 0 2 0 4 0 8 0 16 0 32 0 64 0 128
計算機中最小存儲單位是位(bit)
1byte=8bit
根據以上事例:
計算機中最小單位由一個8位的01組合存儲,最大可表示255
若是咱們用一個二進制數字表示一個字符,好比說用「0100 0001」來表示A。
根據這個對應關係,獲得如下表格
這就是編碼
這套編碼叫ASCII(美國(國家)信息交換標準(代)碼),使用7個或8個二進制位進行編碼的方案,最多能夠給256個字符。使用了ASCII碼,不一樣的計算機之間就能夠實現數據的標準化。可是ASCII使用的時候有一些限制。他最多之能夠表示256個字符。若是有其餘的字符就無能爲力了。ASCII只能表示26個基本的拉丁字母、阿拉伯數字和英式標點。所以也只能用於顯示現代美國英語。後來計算機世界開始有了其餘語言,ASCII碼已經沒法知足需求。後來不一樣語言的人各自爲本身定製了一套屬於本身的編碼,同時與ASCII保持兼容。這些編碼統稱MBCS,到了這裏你們都開始好似用雙字節。(中國的叫GB*,好比GBK).在後來有人開始以爲,這麼多編碼,有些編碼之間還不兼容,太讓人頭大了,因而有這麼一羣人就坐在一塊兒想出了一個辦法:全部的語言都使用同一種編碼,這種編碼就是Unicode。 Unicode使用最少2個字節(1個字節=1BYTE=8bit=一個長度爲8的二進制數) 來表示字母和符號等,有時候是4個字節。這樣就解決了上面遇到的問題。Unicode又叫萬國碼,是業界的一種標準。可是有人又以爲若是我要表示一個ASCII裏的字符,使用unicode來表示不是太浪費空間了嗎,因而就有人想出了另一種解決方案——UTF-8。UTF-8是對Unicode編碼的壓縮和優化,最大的特色是它採用了變長的編碼方式,他再也不是最少使用2個字節,而是將全部的字符進行分類。ascii碼中的內容用1個字節保存、歐洲的字符用2個字節保存,東亞的字符用3個字節保存…