GO基本數(shù)據(jù)類型

go基本數(shù)據(jù)類型

? ? ? ? go語言中基本數(shù)據(jù)類型大體可以分為:整型、浮點(diǎn)型、布爾型、字符串。

? ? ? ? 首先看整型,在go語言中整型的小分類比較多有(int、int8、int16、int32、int64)上面表示的是有符號的整型,對應(yīng)的還有無符號的整型(uint、uint8、uint16、uint32、uint64)有符號和無符號的類型之間的區(qū)別是有符號的整型取值的區(qū)間有正有負(fù),而無符號的類型取值的區(qū)間只有正數(shù),例如uint8的取值區(qū)間為0-225,而225怎么算出來的呢,這里的int8表示的是一個(gè)字節(jié)也就是8bit,用二進(jìn)制來表示就是00000000~11111111換算成十進(jìn)制就是0~225那么這是無符號類型的取值范圍,如果是有符號的int8的話就是-128~127,我們可以這么算在計(jì)算機(jī)中表示有符號的類型那么最高的位數(shù)將用來表示符號0代表正數(shù)1代表負(fù)數(shù)所以少了一位最高位,他們的取值范圍換算成十進(jìn)制就是-128~127,至于后面的16,32,64都是類似的并且取值范圍在源碼中都有記錄。(整型當(dāng)中有兩個(gè)很特殊的存在一個(gè)是int32還有一個(gè)是uint8,在java語言中的chat字符型在go語言中用rune表示并且rune和int32是完全等同的rune就是int32的一個(gè)別名,取兩個(gè)名字只是為了來區(qū)分字符和32位整型,uint8的還有一個(gè)別名就是我們很熟悉的byte,在所有方面都等同于uint8,按照慣例,用于區(qū)分字節(jié)值和8位無符號整數(shù)值。)


1.1

? ? ? ? 如果我們定義一個(gè)整型不給它指定決定的類型的話他默認(rèn)就是int類型,在源碼解釋中int類型代表大小至少大于int32的類型但是和int32位不同的類型如圖1.1,無符號uint和int差不多就在于符號的區(qū)別。

? ? ? ? 然后就是浮點(diǎn)型,浮點(diǎn)型的話就沒有整型那么多的分類了,在go中浮點(diǎn)型只有兩種一直是float32還有就是float64,如果我們不指明類型的話類型的選擇就和你的機(jī)器類型有關(guān)如果你是32位機(jī)就是float32,64位機(jī)的話就是float64,筆者用的就是64位機(jī)默認(rèn)的話定義一個(gè)浮點(diǎn)數(shù)給它指定的類型就是float64如果你可以預(yù)知自己不需要那么大的空間來存儲(chǔ)也可以顯示的指定類型為float32可以節(jié)省一半的內(nèi)存。

? ? ? ? 接下來布爾類型,和傳統(tǒng)的很多編程語言一樣go語言中布爾類型只有兩個(gè)值ture或false用法大同小異,沒有什么可以記錄的。

? ? ? ? 最后的話就是我們使用頻率最高的類型之一的字符串類型了,在go語言中的字符串類型和java當(dāng)中基本沒有區(qū)別。

? ? ? ? 在最后的最后補(bǔ)充一個(gè)小筆記就是上面提到的計(jì)算機(jī)中表示一個(gè)負(fù)數(shù),是把最高位用來表示正負(fù),以8位2進(jìn)制為例1(00000001)推理得出-1的話就是(100000001)但是計(jì)算的話就會(huì)出問題-1+1在十進(jìn)制中等于0但是按照這個(gè)規(guī)則用2進(jìn)制的數(shù)進(jìn)行計(jì)算相加的話就是-2,所以就有了補(bǔ)碼-1這樣的有符號數(shù)不用10000001來表示而是用它的補(bǔ)碼來表示(補(bǔ)碼的求法:向我們上面按照之前的規(guī)則最高位代表符號表示-1的二進(jìn)制數(shù)值10000001這是-1的原碼,最高位表示符號的不動(dòng)后面所有位上面的數(shù)取反然后加1就是11111111就是-1的補(bǔ)碼)然后用00000001+11111111=1000000000由于是8位的數(shù)去掉最高位就是00000000等于0

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容