最近中文字幕高清中文字幕无,亚洲欧美高清一区二区三区,一本色道无码道dvd在线观看 ,一个人看的www免费高清中文字幕

全部開發(fā)者教程

Go 入門教程

Go 語言基礎(chǔ)教程
01 Go語言簡(jiǎn)介 02 Go 在 Windows 上的安裝及配置 03 Go 在 Linux 上的安裝與配置 04 Go 在 MacOS 上的安裝及配置 05 Git 的下載和安裝 06 VSCode 編輯器安裝和配置 07 Go 的變量聲明 08 Go 的變量賦值 09 Go 語言的 := 10 Go 的整型(int) 11 Go 的無符號(hào)整型(uint) 12 Go 的浮點(diǎn)型(float) 13 Go 的字符類型 14 Go 的布爾型(bool) 15 Go 的強(qiáng)制類型轉(zhuǎn)換 16 Go 語言的常量 17 Go 語言中代替枚舉的辦法 18 Go 語言中的運(yùn)算符 19 Go 語言的分支語句 20 Go 語言的循環(huán)語句 21 Go 語言的通道 22 Go 語言中的函數(shù) 23 Go 語言函數(shù)中的 defer 24 Go 語言中的閉包 25 Go 語言的指針 26 Go 語言中的數(shù)組 27 Go 語言中的切片 28 Go 語言中的 Map 29 Go 語言中的 range 30 Go 語言拓展以有類型 31 Go 語言中的結(jié)構(gòu)體和"面向?qū)ο?quot; 32 Go 語言中的接口 33 Go 語言類型的內(nèi)嵌 34 Go 語言中的 nil 35 Go 語言函數(shù)式編程 36 Go 語言中的錯(cuò)誤和異常處理 37 Go 語言的并發(fā) 38 Go 語言中的包 39 Go 語言 go mod 包依賴管理工具 40 Go 語言的文件操作 41 Go 語言中的系統(tǒng)包 42 Go 語言的 strings 系統(tǒng)包的使用 43 Go 語言中的變參 44 Go 語言中的反射 45 Go 語言性能測(cè)試 46 使用 Go 語言搭建簡(jiǎn)易登錄功能 47 使用 gin 包優(yōu)化登錄功能
首頁(yè) 慕課教程 Go 入門教程 Go 入門教程 11 Go 的無符號(hào)整型(uint)

Go 語言的無符號(hào)整型(uint)

上個(gè)小節(jié)我們主要學(xué)習(xí)了 Go 語言中的整型 int 數(shù)據(jù)類型,本小節(jié)主要介紹了 Go 語言中處理無符號(hào)的整數(shù)的數(shù)據(jù)類型。

1. 定長(zhǎng)類型

序號(hào) 類型 長(zhǎng)度
1 uint8 0~255
2 uint16 0~65535
3 uint32 0~4294967295
4 uint64 0~18446744073709551615

2. 不定長(zhǎng)類型

在 Go 語言中也實(shí)現(xiàn)了隨著平臺(tái)位數(shù)變化而變化的數(shù)據(jù)類型uint。一般來說,這個(gè)類型在32位的系統(tǒng)中長(zhǎng)度和uint32一致,在64位的系統(tǒng)中長(zhǎng)度和uint64一致。

package main

import (
    "fmt"
    "math"
)

func main() {
    var num uint
    num = math.MaxUint64 //將e賦予uint64的最大值:18446744073709551615
    fmt.Println(num)
}

在 64 位環(huán)境中執(zhí)行結(jié)果:

圖片描述

64 位操作系統(tǒng)執(zhí)行結(jié)果

在 32 位環(huán)境中,因?yàn)?code>int的長(zhǎng)度與int32相等了,只有32位,所以執(zhí)行時(shí)會(huì)報(bào)超出取值范圍的錯(cuò)誤:

圖片描述

64 位操作系統(tǒng)執(zhí)行結(jié)果

3. 各類型的互相轉(zhuǎn)換

Go 語言是強(qiáng)類型語言,各個(gè)雖然同是無符號(hào)整型,但是不同無符號(hào)整型的變量不允許直接賦值,需要進(jìn)行強(qiáng)制類型轉(zhuǎn)換,同時(shí)長(zhǎng)度大的無符號(hào)整型向長(zhǎng)度小的無符號(hào)整型轉(zhuǎn)換時(shí),要考慮溢出問題。而且不同類的整型無法進(jìn)行運(yùn)算,想要進(jìn)行運(yùn)算必須要進(jìn)行強(qiáng)制類型轉(zhuǎn)換,使他們都變成同一類型之后,再運(yùn)算。舉一個(gè) uint8uint16 類型的變量賦值與計(jì)算的例子:

package main

import (
    "fmt"
    "math"
)

func main() {
    var a uint8 = math.MaxUint8
    var b uint16 = math.MaxUint8 + 1
    fmt.Println(a, b)

    a = uint8(b)
    fmt.Println(a, b) //因?yàn)閎長(zhǎng)度過長(zhǎng),在轉(zhuǎn)換為uint8的過程中溢出了

    //無符號(hào)整型變量可以和常數(shù)進(jìn)行計(jì)算
    a = a + 1
    b = b + 1
    fmt.Println(a, b)

    //不同類型的無符號(hào)整型變量計(jì)算必須強(qiáng)轉(zhuǎn)為相同類型,一般轉(zhuǎn)換為長(zhǎng)度大的來計(jì)算
    c := uint16(a) + b
    fmt.Println(c)
}

輸出結(jié)果:

圖片描述

各類型相互轉(zhuǎn)換輸出結(jié)果

4. 小結(jié)

本文主要學(xué)習(xí)了 Go 語言中的無符號(hào)整型的使用,注意高精度向低精度轉(zhuǎn)失真的風(fēng)險(xiǎn)。