美文网首页📗Go语言:基础大全
Go语言:判断系统位数

Go语言:判断系统位数

作者: 白祤星 | 来源:发表于2019-01-12 21:26 被阅读18298次

代码实例


package main

func main() {
    bit := 32 << (^uint(0) >> 63)
    prinln(bit)
}

原理详解


  • 首先是 ^uint(0)uint 类型并 不是一个固定长度的类型

  • ^uint(0)32位系统 上返回的是 0XFFFFFFFF,也就是 232

  • ^uint(0)64位系统 上返回的是 0xFFFFFFFFFFFFFFFF,也就是 264

  • 然后 左移(<<)右移(>>) 运算顺序都是从左到右的,^为位反

对于32位系统:
  • ^unit(0):232 − 1,(232 − 1) >> 63
  • 得到0,32 << 0(也就是32左移0位), 得32
对于64位系统:
  • ^unit(0):264 − 1,(264 − 1) >> 63
  • 得到1,32 << 0(也就是32左移1位), 得64

相关文章

网友评论

    本文标题:Go语言:判断系统位数

    本文链接:https://www.haomeiwen.com/subject/ddxhdqtx.html