二进制、字节、int范围、编码
二進(jìn)制、字節(jié)、int范圍、編碼
二進(jìn)制
二進(jìn)制,是計(jì)算技術(shù)中廣泛采用的一種數(shù)制,由德國(guó)數(shù)理哲學(xué)大師萊布尼茨于1679年發(fā)明。二進(jìn)制數(shù)據(jù)是用0和1兩個(gè)數(shù)碼來表示的數(shù)。它的基數(shù)為2,進(jìn)位規(guī)則是“逢二進(jìn)一”,借位規(guī)則是“借一當(dāng)二”。當(dāng)前的計(jì)算機(jī)系統(tǒng)使用的基本上是二進(jìn)制系統(tǒng),數(shù)據(jù)在計(jì)算機(jī)中主要是以補(bǔ)碼的形式存儲(chǔ)的。計(jì)算機(jī)中的二進(jìn)制則是一個(gè)非常微小的開關(guān),用“開”來表示1,“關(guān)”來表示0。
二進(jìn)制的特性其實(shí)跟我們平常使用的十進(jìn)制一樣是一種數(shù)制。十進(jìn)制是逢十進(jìn)一,二進(jìn)制是逢二進(jìn)一。二進(jìn)制比計(jì)算機(jī)出現(xiàn)得還早,二進(jìn)制的只有0和1的特性剛好與電子的開關(guān)對(duì)應(yīng),于是二進(jìn)制這種數(shù)制,就成為了計(jì)算機(jī)的根基。
參考資料:
https://baike.baidu.com/item/二進(jìn)制/361457?fr=aladdin
位與字節(jié)(bit and byte)
每個(gè)0或1就是一個(gè)位(bit)。
字節(jié)是計(jì)算機(jī)信息技術(shù)用于計(jì)量?jī)?chǔ)存容量的一種計(jì)量方式(和長(zhǎng)度單位一樣),作為一個(gè)單位來處理的一個(gè)二進(jìn)制數(shù)字串,是構(gòu)成信息的一個(gè)小單位。最常用的字節(jié)是八位的字節(jié),即它包含八位的二進(jìn)制數(shù)。
int范圍
由使用的字節(jié)數(shù),限定的。
python2? 32位? python3 超過32位后自動(dòng)擴(kuò)展(理論上無限)
編碼
因?yàn)橛?jì)算機(jī)只能處理數(shù)字,如果要處理文本,就必須先把文本轉(zhuǎn)換為數(shù)字才能處理。最早的計(jì)算機(jī)在設(shè)計(jì)時(shí)采用8個(gè)比特(bit)作為一個(gè)字節(jié)(byte),所以,一個(gè)字節(jié)能表示的最大的整數(shù)就是255(二進(jìn)制11111111=十進(jìn)制255),如果要表示更大的整數(shù),就必須用更多的字節(jié)。比如兩個(gè)字節(jié)可以表示的最大整數(shù)是65535,4個(gè)字節(jié)可以表示的最大整數(shù)是4294967295。(43億)? ?
由于計(jì)算機(jī)是美國(guó)人發(fā)明的,因此,最早只有127個(gè)字符被編碼到計(jì)算機(jī)里,也就是大小寫英文字母、數(shù)字和一些符號(hào),這個(gè)編碼表被稱為ASCII編碼,比如大寫字母A的編碼是65,小寫字母z的編碼是122。
但是要處理中文顯然一個(gè)字節(jié)是不夠的,至少需要兩個(gè)字節(jié),而且還不能和ASCII編碼沖突,所以,中國(guó)制定了GB2312編碼,用來把中文編進(jìn)去。
你可以想得到的是,全世界有上百種語言,日本把日文編到Shift_JIS里,韓國(guó)把韓文編到Euc-kr里,各國(guó)有各國(guó)的標(biāo)準(zhǔn),就會(huì)不可避免地出現(xiàn)沖突,結(jié)果就是,在多語言混合的文本中,顯示出來會(huì)有亂碼。
因此,Unicode應(yīng)運(yùn)而生。Unicode把所有語言都統(tǒng)一到一套編碼里,這樣就不會(huì)再有亂碼問題了。
gbk?和 utf-8?是經(jīng)常使用的編碼。
轉(zhuǎn)載于:https://www.cnblogs.com/aaronhua/p/11356544.html
總結(jié)
以上是生活随笔為你收集整理的二进制、字节、int范围、编码的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Thinkphp5.0快速入门笔记(3)
- 下一篇: Charles学习(三)之使用Map l