美文网首页📗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