亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Go中Int的最大數值是什么

發布時間:2021-11-15 16:01:31 來源:億速云 閱讀:279 作者:iii 欄目:編程語言

本篇內容主要講解“Go中Int的最大數值是什么”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Go中Int的最大數值是什么”吧!

總結:

import "math/bits"const (
    MaxUint uint = (1 << bits.UintSize) - 1
    MaxInt int = (1 << bits.UintSize) / 2 - 1
    MinInt int = (1 << bits.UintSize) / -2)

背景:

我想你知道,uint類型的大小與uint32uint64相同,具體取決于您所在的平臺。通常,只有在沒有接近最大值風險的情況下,才會使用無尺寸的版本,因為沒有尺寸規格的版本可以使用“本機”類型,這取決于平臺,并且它往往更快。

請注意,更 “快” 是因為使用非本機類型需要處理器執行額外的數學計算和邊界檢查,以便模擬更大或更小的整數。因此,處理器(或編譯器的優化代碼)性能會比添加邊界檢查的代碼要好。

話雖如此,在某些情況下,了解您正在使用的內容仍然很有用。

“math/bits“ 包中含有以字節為單位的uint大小(譯者注:UintSize )。要確定最大值,將 1 左移許多位,再減去 1。即:(1 << bits.UintSize) - 1

請注意,在計算 uint 的最大值時,您通常需要將其顯式放入一個 uint(或更大的類型)類型變量中,否則編譯器可能會失敗,因為它會默認嘗試將該計算分配給一個有符號int(很明顯,它不適合),所以:

const MaxUint uint = (1 << bits.UintSize) - 1

這是您問題的直接答案,但您可能對一些相關的計算感興趣。

根據 spec,uintint 的大小始終相同。

uint 32 位或 64 位

intuint 大小相同

因此,我們也可以使用這個常量來確定 int 的最大值,方法是采用相同的答案并除以 2,然后減去 1。 即:(1 << bits.UintSize) / 2 - 1

以及 int 的最小值,通過將 1 移位那么多位并將結果除以 -2。 即:(1 << bits.UintSize) / -2

總之:

** MaxUint: ** (1 << bits.UintSize) - 1

** MaxInt: ** (1 << bits.UintSize) / 2 - 1

** MinInt: ** (1 << bits.UintSize) / -2

完整示例(應與下圖相同):

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<<bits.UintSize)/2 - 1
    var mi int64 = (1 << bits.UintSize) / -2

    fmt.Printf(" MinInt32: %d\n", mi32)
    fmt.Printf(" MaxInt32:  %d\n", i32)
    fmt.Printf("MaxUint32:  %d\n", ui32)
    fmt.Printf(" MinInt64: %d\n", mi64)
    fmt.Printf(" MaxInt64:  %d\n", i64)
    fmt.Printf("MaxUint64:  %d\n", ui64)
    fmt.Printf("  MaxUint:  %d\n", ui)
    fmt.Printf("   MinInt: %d\n", mi)
    fmt.Printf("   MaxInt:  %d\n", i)

    fmt.Println("MaxUint:", uint(math.MaxUint))
    fmt.Println("MinInt:", math.MinInt)
    fmt.Println("MaxInt:", math.MaxInt)

    fmt.Println("系統架構:", runtime.Compiler, runtime.GOARCH, runtime.GOOS)
    fmt.Println("Int 大小:", strconv.IntSize)}

輸出:

MinInt32: -2147483648
 MaxInt32:  2147483647MaxUint32:  4294967295
 MinInt64: -9223372036854775808
 MaxInt64:  9223372036854775807MaxUint64:  18446744073709551615
  MaxUint:  18446744073709551615
   MinInt: -9223372036854775808
   MaxInt:  9223372036854775807MaxUint: 18446744073709551615MinInt: -9223372036854775808MaxInt: 9223372036854775807系統架構: gc amd64 darwin
Int 大小: 64

到此,相信大家對“Go中Int的最大數值是什么”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

go
AI

苍南县| 上饶市| 武鸣县| 迭部县| 普洱| 安西县| 宣威市| 两当县| 临沧市| 南靖县| 巴彦淖尔市| 葫芦岛市| 五家渠市| 常熟市| 佛冈县| 阿图什市| 南投县| 崇礼县| 宜阳县| 香格里拉县| 福建省| 嵊泗县| 莱州市| 阳谷县| 吉安县| 襄汾县| 包头市| 玛纳斯县| 吴堡县| 洪江市| 江阴市| 天气| 镇雄县| 宁陵县| 泊头市| 越西县| 罗江县| 铁岭市| 东方市| 明光市| 鄄城县|