目录
原理
在Go语言中,uint不是一个长度固定的类型。随着执行机器的CPU处理数据能力的差别变化而变化。我们获取uint在机器中的最大值,在32位系统中,^uint(0) = ,在64位系统中,^uint(0) =
。也就是说,只要获取到uint的最大值,就可以判断出操作系统的位数了。获取uint最大值的方式有两种:
方式一:按位取反
通过位运算符^ 对unit的最小值 uint(0)取反,即可得到最大值:
max := ^uint(0)
方式二:自减表达式
通过对uint的最小值uint(0)自减1即可得到最大值:
max := uint(0)
max--
💡提示:由于自减表达式无法直接参与运算,因此不建议使用。
虽然拿到uint的最大值后可以判断出操作系统的位数,可是这样庞大的数据使结果并不直观。以64位操作系统为例,uint的最大值为184