golang中的數據類型
類型 | 名稱 | 長度 | 零值 | 說明 |
---|---|---|---|---|
bool | 布爾類型 | 1 | false | 其值不為真即為假,不可以用數字代表true或false |
byte | 字節型 | 1 | 0 | uint8別名 |
rune | 字符類型 | 4 | 0 | 專用於存儲unicode編碼,等價於uint32 |
uint, int, | 整型 | 4或8 | 0 | 32位或64位 |
uint8, int8 | 整型 | 1 | 0 | -128 ~ 127, 0 ~ 255 |
uint16, int16 | 整型 | 2 | 0 | -32768 ~ 32767, 0 ~ 65535 |
uint32, int32 | 整型 | 4 | 0 | -21億 ~ 21 億, 0 ~ 42 億 |
uint64, int64 | 整型 | 8 | 0 | |
float32 | 浮點型 | 4 | 0.0 | 小數位精確到7位 |
float64 | 浮點型 | 8 | 0.0 | 小數位精確到15位 |
complex64 | 復數類型 | 8 | ||
complex128 | 復數類型 | 16 | ||
uintptr | 整型 | 4或8 | ⾜以存儲指針的uint32或uint64整數 | |
string | 字符串 | "" | utf-8字符串 |
取得int數據類型最大值
-
最大值
uint8 : 0 to 255
uint16 : 0 to 65535
uint32 : 0 to 4294967295
uint64 : 0 to 18446744073709551615
int8 : -128 to 127
int16 : -32768 to 32767
int32 : -2147483648 to 2147483647
int64 : -9223372036854775808 to 9223372036854775807 -
math包
比如: math.MaxInt64,結果為9223372036854775807 -
取反:
通過取反和移位的方式來取得最大值a. 如果是一個無符號的數字
那么最大值就是 1111
那么就是 ^uint8(0) ,^uint16(0) ^uint32(0) ^uint64(0)
b. 如果是一個有符號的數數字那么最大值就是 0111
那么就是 0000 取反 1111 后移一位 0111
那么就是 int8(^uint8(0) >> 1) int16(^uint16(0) >>1 )
參考鏈接:
golang各種int最大值
go語言int類型最大值