PS 参考博文,致谢 :https://www.liwenzhou.com/posts/Go/02_datatype/
类型 | 描述 |
---|---|
uint8 | 无符号 8位整型 (0 到 255) |
uint16 | 无符号 16位整型 (0 到 65535) |
uint32 | 无符号 32位整型 (0 到 4294967295) |
uint64 | 无符号 64位整型 (0 到 18446744073709551615) |
int8 | 有符号 8位整型 (-128 到 127) |
int16 | 有符号 16位整型 (-32768 到 32767) |
int32 | 有符号 32位整型 (-2147483648 到 2147483647) |
int64 | 有符号 64位整型 (-9223372036854775808 到 9223372036854775807) |
类型 | 描述 |
---|---|
uint | 32位操作系统上就是uint32,64位操作系统上就是uint64 |
int | 32位操作系统上就是int32,64位操作系统上就是int64 |
uintptr | 无符号整型,用于存放一个指针 |
int
和uint
类型时,不能假定它是32位或64位的整型,而是考虑int
和uint
可能在不同平台上的差异。len()
函数返回的长度可以根据不同平台的字节长度进行变化,实际使用中,切片或ma的元素数量等都可以用int
来表示。在涉及到二进制传输、读写文件的结构描述时,为了保持文件的结构不会受不同编译平台字节长度的影响,不要使用int
和uint
;var := 0b00101101
代表了二进制的 101101 相当于十进制的45var := 0o377
代表了八进制的377 相当于十进制的255var := 0x1p-2
代表了十六进制的1除以22,也就是0.25_
来分隔数字,比如 var := 123_456
表示v的值等于 123456// go语言中无法直接定义二进制数
package main
import "fmt"
func main() {
// 十进制
var a int = 10
fmt.Printf("%d \n", a) // 10
fmt.Printf("%b \n", a) // 1010 占位符%b表示二进制
// 八进制 以0开头
var b int = 077
fmt.Printf("%o \n", b) // 77
// 十六进制 以0x开头
var c int = 0xff
fmt.Printf("%x \n", c) // ff
fmt.Printf("%X \n", c) // FF
}
package main
import "fmt"
func main() {
// 十进制
var a int = 10
fmt.Printf("%d \n", a) // 10
fmt.Printf("%b \n", a) // 把十进制转换成二进制
fmt.Printf("%o \n", a) // 把十进制转换成八进制
fmt.Printf("%x \n", a) // 把十进制转换成十六进制
}
原文:https://www.cnblogs.com/dai-zhe/p/14825233.html