在Java语言中,可以通过 Integer.MAX_VALUE 获取int类型的最大值,和 Integer.MIN_VALUE 获取int类型的最小值。
golang的标准库里没有定义这些变量。不过可以用位操作运算,轻松定义这些常量。
最大最小值
无符号整型uint
其最小值是0,其二进制表示的所有位都为0,
const UINT_MIN uint = 0
其最大值的二进制表示的所有位都为1,那么,
const UINT_MAX = ^uint(0)
有符号整型int
根据补码,其最大值二进制表示,首位0,其余1,那么,
const INT_MAX = int(^uint(0) >> 1)
根据补码,其最小值二进制表示,首位1,其余0,那么,
const INT_MIN = ^INT_MAX
还有其他数据类型与上述同理
还可通过进制转换查看转换流程
十进制转二进制 %d -> %b(其余同理)
fmt.Printf("%d的十进制为%b", num01,num01)
扩展知识
二进制 0B或者0b 表示(其余同理)
var num01 int = 0b1100
%b 表示为二进制
%c 该值对应的unicode码值
%d 表示为十进制
%o 表示为八进制
%q 该值对应的单引号括起来的go语法字符字面值,必要时会采用安全的转义表示
%x 表示为十六进制,使用a-f
%X 表示为十六进制,使用A-F
%U 表示为Unicode格式:U+1234,等价于"U+%04X"
%E 用科学计数法表示
%f 用浮点数表示
网友评论