第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

為什么 Go 有幾種不同的整數(shù)類型?

為什么 Go 有幾種不同的整數(shù)類型?

Go
手掌心 2021-10-18 17:06:43
我發(fā)現(xiàn) Go 中有不同的整數(shù)類型令人困惑。考慮到許多其他主要編程語(yǔ)言中不存在這些區(qū)別,定義這些不同類別的必要性是什么?int  int8  int16  int32  int64uint uint8 uint16 uint32 uint64 uintptr
查看完整描述

3 回答

?
桃花長(zhǎng)相依

TA貢獻(xiàn)1860條經(jīng)驗(yàn) 獲得超8個(gè)贊

Go有兩種類型:

  1. 依賴于體系結(jié)構(gòu)的類型, 例如intuintuintptr。和

  2. 體系結(jié)構(gòu)無關(guān)的類型int32,int64

依賴于體系結(jié)構(gòu)的類型對(duì)于運(yùn)行程序的機(jī)器具有適當(dāng)?shù)拈L(zhǎng)度:

  • anint是默認(rèn)的有符號(hào)類型:在 32 位機(jī)器上需要 32 位(4 字節(jié)),在 64 位機(jī)器上需要 64 位(8 字節(jié));unsigned 也是如此uint

  • uintptr 是一個(gè)足以存儲(chǔ)指針值的無符號(hào)整數(shù)。

與體系結(jié)構(gòu)無關(guān)的類型具有由其名稱指示的固定大小(以位為單位):

對(duì)于整數(shù),范圍是:

int8 (-128 -> 127)

int16 (-32768 -> 32767)

int32 (? 2,147,483,648 -> 2,147,483,647)

int64 (? 9,223,372,036,854,775,808 -> 9,223,372,036,854,775,807)

對(duì)于無符號(hào)整數(shù):


uint8 (with alias byte, 0 -> 255)

uint16 (0 -> 65,535)

uint32 (0 -> 4,294,967,295)

uint64 (0 -> 18,446,744,073,709,551,615)

對(duì)于花車:


float32 (+- 1O-45 -> +- 3.4 * 1038 )

(IEEE-754) float64 (+- 5 * 10-324 -> 1.7 * 10308 )

int是提供最快處理速度的整數(shù)類型。整數(shù)的初始(默認(rèn))值為0,對(duì)于浮點(diǎn)數(shù),這是0.0 一個(gè) float32 可靠地精確到大約 7 個(gè)小數(shù)位,一個(gè) float64 精確到大約 15 個(gè)小數(shù)位。


由于浮點(diǎn)數(shù)不可能達(dá)到完美的準(zhǔn)確性,==或者!=必須非常小心地進(jìn)行比較!


查看完整回答
反對(duì) 回復(fù) 2021-10-18
?
倚天杖

TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超3個(gè)贊

為什么 Go 有幾種不同的類型?處理不同類型/種類的數(shù)據(jù)。


為什么 Go 有幾種不同的整數(shù)類型?處理不同類型/種類的整數(shù)數(shù)據(jù)。


還有更多你沒有列出的:


byte    alias for uint8

rune    alias for int32

有符號(hào)和無符號(hào)之間的區(qū)別非常明顯。在 Java 中沒有無符號(hào)整數(shù),我發(fā)現(xiàn)它比擁有額外的類型更令人困惑,并且可以方便地選擇。在 Java 中編寫與發(fā)送/接收無符號(hào)整數(shù)數(shù)據(jù)的其他系統(tǒng)互操作的應(yīng)用程序很煩人。


關(guān)于位大小,您可以方便地選擇最適合您的內(nèi)存需求(或內(nèi)存嚴(yán)格性)并限制變量表示的值的可能范圍。不會(huì)增加語(yǔ)言或程序的復(fù)雜性。


選擇整數(shù)變量位大小的“調(diào)色板”并沒有用盡,大多數(shù)其他語(yǔ)言提供相同范圍的整數(shù)類型。如果排除符號(hào),則 Java 基本上具有相同的數(shù)量:


Java         Go

-------------------------

byte    =>   int8

short   =>   int16

int     =>   int32

long    =>   int64


查看完整回答
反對(duì) 回復(fù) 2021-10-18
?
犯罪嫌疑人X

TA貢獻(xiàn)2080條經(jīng)驗(yàn) 獲得超4個(gè)贊

C99 語(yǔ)言具有類似的分類 thru <stdint.h>(而 C 更細(xì)粒度,具有類似 的類型int_fast32_t);擁有這么多的整數(shù)類型對(duì)于可移植性和效率很有用。


與 C99 和 C++ 的兼容性可能足以成為 Go 擁有這些類型的理由。


您可能想要編寫可以在嵌入式微控制器、平板電腦(32 位 ARM)、廉價(jià)筆記本電腦(32 位 x86)、更大的臺(tái)式機(jī)(64 位 x86-64)、服務(wù)器(也許還有 PowerPC 或 64 位AARCH64 ARM)上高效運(yùn)行的代碼等等...而且您在某些操作系統(tǒng)上有各種編程模型或ABI(例如,我的 Linux 桌面上的x86、x32、amd64)。


在各種架構(gòu)上,積分運(yùn)算的成本可能會(huì)有很大差異。在某些機(jī)器上,添加 anint可能比添加C long(或int64來自Go 的an )成本更高。在其他機(jī)器上(可能是大多數(shù)機(jī)器),情況可能正好相反。和CPU緩存的考慮可能問題很多WRT性能。在某些情況下(例如,如果您有十億大小的數(shù)組)數(shù)據(jù)大小很重要。最后,對(duì)于來自外部的二進(jìn)制數(shù)據(jù),大小、布局、對(duì)齊和字節(jié)順序很重要。閱讀有關(guān)序列化的信息。


查看完整回答
反對(duì) 回復(fù) 2021-10-18
  • 3 回答
  • 0 關(guān)注
  • 226 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)