二進制、字節、int范圍、編碼


二進制、字節、int范圍、編碼

二進制

二進制,是計算技術中廣泛采用的一種數制,由德國數理哲學大師萊布尼茨於1679年發明。二進制數據是用0和1兩個數碼來表示的數。它的基數為2,進位規則是“逢二進一”,借位規則是“借一當二”。當前的計算機系統使用的基本上是二進制系統,數據在計算機中主要是以補碼的形式存儲的。計算機中的二進制則是一個非常微小的開關,用“開”來表示1,“關”來表示0。
二進制的特性其實跟我們平常使用的十進制一樣是一種數制。十進制是逢十進一,二進制是逢二進一。二進制比計算機出現得還早,二進制的只有0和1的特性剛好與電子的開關對應,於是二進制這種數制,就成為了計算機的根基。
參考資料:
https://baike.baidu.com/item/二進制/361457?fr=aladdin

位與字節(bit and byte)

每個0或1就是一個位(bit)。
字節是計算機信息技術用於計量儲存容量的一種計量方式(和長度單位一樣),作為一個單位來處理的一個二進制數字串,是構成信息的一個小單位。最常用的字節是八位的字節,即它包含八位的二進制數。
image.png

int范圍

由使用的字節數,限定的。
python2  32位  python3 超過32位后自動擴展(理論上無限)

編碼


因為計算機只能處理數字,如果要處理文本,就必須先把文本轉換為數字才能處理。最早的計算機在設計時采用8個比特(bit)作為一個字節(byte),所以,一個字節能表示的最大的整數就是255(二進制11111111=十進制255),如果要表示更大的整數,就必須用更多的字節。比如兩個字節可以表示的最大整數是65535,4個字節可以表示的最大整數是4294967295。(43億)   
由於計算機是美國人發明的,因此,最早只有127個字符被編碼到計算機里,也就是大小寫英文字母、數字和一些符號,這個編碼表被稱為ASCII編碼,比如大寫字母A的編碼是65,小寫字母z的編碼是122
但是要處理中文顯然一個字節是不夠的,至少需要兩個字節,而且還不能和ASCII編碼沖突,所以,中國制定了GB2312編碼,用來把中文編進去。
你可以想得到的是,全世界有上百種語言,日本把日文編到Shift_JIS里,韓國把韓文編到Euc-kr里,各國有各國的標准,就會不可避免地出現沖突,結果就是,在多語言混合的文本中,顯示出來會有亂碼。
因此,Unicode應運而生。Unicode把所有語言都統一到一套編碼里,這樣就不會再有亂碼問題了。
gbk 和 utf-8 是經常使用的編碼。


免責聲明!

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



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