欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Golang中int,?int8,?int16,?int32,?int64和uint區(qū)別淺析

 更新時間:2022年11月30日 09:52:37   作者:跳舞的皮埃爾  
go語言中的int的大小是和操作系統(tǒng)位數(shù)相關(guān)的,如果是32位操作系統(tǒng),int類型的大小就是4字節(jié),如果是64位操作系統(tǒng),int類型的大小就是8個字節(jié),下面這篇文章主要給大家介紹了關(guān)于Golang中int,?int8,?int16,?int32,?int64和uint區(qū)別的相關(guān)資料,需要的朋友可以參考下

前言

在學(xué)習(xí)go語言時,做算法題會很經(jīng)常遇到go語言的各種int類型,為什么會有int、int8、int16等等的類型呢?為什么不像java一樣,只個int類型呢?

測試

unsafe.Sizeof() 只返回數(shù)據(jù)類型的大小,不管引用數(shù)據(jù)的大小,單位為Byte

package main

import (
	"fmt"
	"unsafe"
)

func main() {
	var a int = 1
	var b int8 = 2
	var c int16 = 3
	var d int32 = 4
	var e int64 = 5
	fmt.Println(unsafe.Sizeof(a))
	fmt.Println(unsafe.Sizeof(b))
	fmt.Println(unsafe.Sizeof(c))
	fmt.Println(unsafe.Sizeof(d))
	fmt.Println(unsafe.Sizeof(e))
}

結(jié)果

F:\go\bin\go.exe build -o C:\Users\wang3\AppData\Local\Temp\GoLand\___go_build_test_go.exe G:\Gospace\leetcode\test.go #gosetup
C:\Users\wang3\AppData\Local\Temp\GoLand\___go_build_test_go.exe
8
1
2
4
8

結(jié)論

  • int類型的大小為 8 字節(jié)
  • int8類型大小為 1 字節(jié)
  • int16類型大小為 2 字節(jié)
  • int32類型大小為 4 字節(jié)
  • int64類型大小為 8 字節(jié)

我們看一下官方文檔
int is a signed integer type that is at least 32 bits in size. It is a distinct type, however, and not an alias for, say, int32.
意思是 int 是一個至少32位的有符號整數(shù)類型。但是,它是一個不同的類型,而不是int32的別名。int 和 int32 是兩碼事。
uint is a variable sized type, on your 64 bit computer uint is 64 bits wide.
uint 是一種可變大小的類型,在64位計算機上,uint 是64位寬的。uint 和 uint8 等都屬于無符號 int 類型。uint 類型長度取決于 CPU,如果是32位CPU就是4個字節(jié),如果是64位就是8個字節(jié)。

補充:測試不同int類型的取值范圍

測試有符號int情況

func TestIntRange(t *testing.T) {
    // 不同int類型的取值范圍
    fmt.Println("不同int類型的取值范圍:")
    //fmt.Println("int:", math.MinInt, "~", math.MaxInt) 報錯,沒有 math.MinInt math.MaxInt
    fmt.Println("int8:", math.MinInt8, "~", math.MaxInt8)
    fmt.Println("int16:", math.MinInt16, "~", math.MaxInt16)
    fmt.Println("int32:", math.MinInt32, "~", math.MaxInt32)
    fmt.Println("int64:", math.MinInt64, "~", math.MaxInt64)
    fmt.Println()
}

測試結(jié)果:

不同int類型的取值范圍:
int8: -128 ~ 127
int16: -32768 ~ 32767
int32: -2147483648 ~ 2147483647
int64: -9223372036854775808 ~ 9223372036854775807

測試無符號不同int類型的取值范圍

func TestUintRange(t *testing.T) {
    fmt.Println("uint8:", 0, "~", math.MaxUint8)
    fmt.Println("uint16:", 0, "~", math.MaxUint16)
    fmt.Println("uint32:", 0, "~", math.MaxUint32)
    //fmt.Println("uint64:", 0, "~", math.MaxUint64)
    fmt.Println()
}

測試結(jié)果

=== RUN   TestUintRange
uint8: 0 ~ 255
uint16: 0 ~ 65535
uint32: 0 ~ 4294967295

--- PASS: TestUintRange (0.00s)
PASS

總結(jié)

go語言中的 int 的大小是和操作系統(tǒng)位數(shù)相關(guān)的,如果是32位操作系統(tǒng),int 類型的大小就是4字節(jié)。如果是64位操作系統(tǒng),int 類型的大小就是8個字節(jié)

到此這篇關(guān)于Golang中int, int8, int16, int32, int64和uint區(qū)別的文章就介紹到這了,更多相關(guān)Go int, int8, int16, int32, int64和uint區(qū)別內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 深入解析golang中的標(biāo)準(zhǔn)庫flag

    深入解析golang中的標(biāo)準(zhǔn)庫flag

    Go語言內(nèi)置的flag包實現(xiàn)了命令行參數(shù)的解析,flag包使得開發(fā)命令行工具更為簡單,下面通過本文給大家詳細(xì)介紹下golang中的標(biāo)準(zhǔn)庫flag相關(guān)知識,感興趣的朋友一起看看吧
    2021-11-11
  • Windows下安裝VScode 并使用及中文配置方法

    Windows下安裝VScode 并使用及中文配置方法

    這篇文章主要介紹了Windows下安裝VScode 并使用及中文配置的方法詳解,本文通過圖文并茂的形式給大家介紹,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-03-03
  • golang 阻止主goroutine退出的操作

    golang 阻止主goroutine退出的操作

    這篇文章主要介紹了golang 阻止主goroutine退出的操作方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-04-04
  • 詳解如何使用Golang操作MongoDB數(shù)據(jù)庫

    詳解如何使用Golang操作MongoDB數(shù)據(jù)庫

    在現(xiàn)代開發(fā)中,數(shù)據(jù)存儲是一個至關(guān)重要的環(huán)節(jié),MongoDB作為一種NoSQL數(shù)據(jù)庫,提供了強大的功能和靈活的數(shù)據(jù)模型,與Golang的高性能和并發(fā)性能非常契合,本文將探討Golang與MongoDB的完美組合,介紹如何使用Golang操作MongoDB數(shù)據(jù)庫,需要的朋友可以參考下
    2023-11-11
  • 使用Golang簡單實現(xiàn)七牛圖片處理API

    使用Golang簡單實現(xiàn)七牛圖片處理API

    本文給大家實現(xiàn)的是使用Golang簡單實現(xiàn)七牛圖片處理API的方法和步驟,基于PIPE庫實現(xiàn)的,非常的實用,有需要的小伙伴可以參考下
    2016-08-08
  • Go存儲基礎(chǔ)使用direct io方法實例

    Go存儲基礎(chǔ)使用direct io方法實例

    這篇文章主要介紹了Go存儲基礎(chǔ)之如何使用direct io方法實例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-12-12
  • Go設(shè)計模式之原型模式圖文詳解

    Go設(shè)計模式之原型模式圖文詳解

    原型模式是一種創(chuàng)建型設(shè)計模式, 使你能夠復(fù)制已有對象, 而又無需使代碼依賴它們所屬的類,本文將通過圖片和文字讓大家可以詳細(xì)的了解Go的原型模式,感興趣的通過跟著小編一起來看看吧
    2023-07-07
  • 如何使用騰訊云go sdk 查詢對象存儲中最新文件

    如何使用騰訊云go sdk 查詢對象存儲中最新文件

    這篇文章主要介紹了使用騰訊云go sdk 查詢對象存儲中最新文件,這包括如何創(chuàng)建COS客戶端,如何逐頁檢索對象列表,并如何對結(jié)果排序以找到最后更新的對象,我們還展示了如何優(yōu)化用戶體驗,通過實時進度更新和檢索多個文件來改進程序,需要的朋友可以參考下
    2024-03-03
  • Golang中 Slice的分析與使用源碼解析

    Golang中 Slice的分析與使用源碼解析

    這篇文章主要介紹了Golang 中 Slice的分析與使用(含源碼),本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-03-03
  • go語言vscode集成開發(fā)環(huán)境搭建

    go語言vscode集成開發(fā)環(huán)境搭建

    本文將介紹如何使用VSCode搭建Go語言開發(fā)環(huán)境,Go語言是一種簡潔高效的編程語言,而VSCode是一款輕量級的集成開發(fā)環(huán)境,二者的結(jié)合可以提供良好的開發(fā)體驗,
    2023-08-08

最新評論