本篇內(nèi)容主要講解“Go中Int的最大數(shù)值是什么”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來(lái)帶大家學(xué)習(xí)“Go中Int的最大數(shù)值是什么”吧!
站在用戶(hù)的角度思考問(wèn)題,與客戶(hù)深入溝通,找到海興網(wǎng)站設(shè)計(jì)與海興網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶(hù)體驗(yàn)好的作品,建站類(lèi)型包括:成都網(wǎng)站制作、成都網(wǎng)站設(shè)計(jì)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、主機(jī)域名、虛擬空間、企業(yè)郵箱。業(yè)務(wù)覆蓋海興地區(qū)。
總結(jié):
import "math/bits"const ( MaxUint uint = (1 << bits.UintSize) - 1 MaxInt int = (1 << bits.UintSize) / 2 - 1 MinInt int = (1 << bits.UintSize) / -2)
背景:
我想你知道,uint
類(lèi)型的大小與uint32
或uint64
相同,具體取決于您所在的平臺(tái)。通常,只有在沒(méi)有接近最大值風(fēng)險(xiǎn)的情況下,才會(huì)使用無(wú)尺寸的版本,因?yàn)闆](méi)有尺寸規(guī)格的版本可以使用“本機(jī)”類(lèi)型,這取決于平臺(tái),并且它往往更快。
請(qǐng)注意,更 “快” 是因?yàn)槭褂梅潜緳C(jī)類(lèi)型需要處理器執(zhí)行額外的數(shù)學(xué)計(jì)算和邊界檢查,以便模擬更大或更小的整數(shù)。因此,處理器(或編譯器的優(yōu)化代碼)性能會(huì)比添加邊界檢查的代碼要好。
話(huà)雖如此,在某些情況下,了解您正在使用的內(nèi)容仍然很有用。
“math/bits“ 包中含有以字節(jié)為單位的uint
大小(譯者注:UintSize )。要確定最大值,將 1
左移許多位,再減去 1。即:(1 << bits.UintSize) - 1
請(qǐng)注意,在計(jì)算 uint
的最大值時(shí),您通常需要將其顯式放入一個(gè) uint
(或更大的類(lèi)型)類(lèi)型變量中,否則編譯器可能會(huì)失敗,因?yàn)樗鼤?huì)默認(rèn)嘗試將該計(jì)算分配給一個(gè)有符號(hào)int
(很明顯,它不適合),所以:
const MaxUint uint = (1 << bits.UintSize) - 1
這是您問(wèn)題的直接答案,但您可能對(duì)一些相關(guān)的計(jì)算感興趣。
根據(jù) spec,uint
和 int
的大小始終相同。
uint
32 位或 64 位
int
與uint
大小相同
因此,我們也可以使用這個(gè)常量來(lái)確定 int
的最大值,方法是采用相同的答案并除以 2
,然后減去 1
。 即:(1 << bits.UintSize) / 2 - 1
以及 int
的最小值,通過(guò)將 1
移位那么多位并將結(jié)果除以 -2
。 即:(1 << bits.UintSize) / -2
總之:
** MaxUint: ** (1 << bits.UintSize) - 1
** MaxInt: ** (1 << bits.UintSize) / 2 - 1
** MinInt: ** (1 << bits.UintSize) / -2
完整示例(應(yīng)與下圖相同):
package mainimport ( "fmt" "math" "math/bits" "runtime" "strconv")func main() { var mi32 int64 = math.MinInt32 var mi64 int64 = math.MinInt64 var i32 uint64 = math.MaxInt32 var ui32 uint64 = math.MaxUint32 var i64 uint64 = math.MaxInt64 var ui64 uint64 = math.MaxUint64 var ui uint64 = (1 << bits.UintSize) - 1 var i uint64 = (1<輸出:
MinInt32: -2147483648 MaxInt32: 2147483647MaxUint32: 4294967295 MinInt64: -9223372036854775808 MaxInt64: 9223372036854775807MaxUint64: 18446744073709551615 MaxUint: 18446744073709551615 MinInt: -9223372036854775808 MaxInt: 9223372036854775807MaxUint: 18446744073709551615MinInt: -9223372036854775808MaxInt: 9223372036854775807系統(tǒng)架構(gòu): gc amd64 darwin Int 大小: 64到此,相信大家對(duì)“Go中Int的最大數(shù)值是什么”有了更深的了解,不妨來(lái)實(shí)際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢(xún),關(guān)注我們,繼續(xù)學(xué)習(xí)!
分享題目:Go中Int的最大數(shù)值是什么
網(wǎng)頁(yè)地址:http://weahome.cn/article/jhidjd.html