zoukankan      html  css  js  c++  java
  • golang 判断平台是32位还是64位

    在strconv包中有个常量

      const intSize  =  32  <<  (  ^uint(0)  >>  63  )

      const IntSize = intSize

    在32位平台这个值为32;在64位平台,这个值为64; 因此可以通过这个来判断平台的位数.

    原理:

    在32平台系统:

      1. uint(0)在平台底层是0x00000000

      2. ^uint(0)在平台底层是0xFFFFFFFF

      3. ^uint(0) >> 63 在底层平台是0x00000000,也就是0

      4. 32 << 0 结果是0

    在64平台系统:

      1. uint(0)在平台底层是0x0000000000000000

      2. ^uint(0)在平台底层是0xFFFFFFFFFFFFFFFF

      3. ^uint(0) >> 63 在底层平台是0x0000000000000001,也就是1

      4. 32 << 1 结果是32*2  =  64

    非常巧妙!!!

  • 相关阅读:
    452.用最少数量的箭引爆气球
    134.加油站
    Javascript
    spring-JDBC模板
    AOP注解方式ApsectJ开发
    AOP通知类型
    AOP的使用
    AOP相关术语
    AOP
    IOC注解详解
  • 原文地址:https://www.cnblogs.com/keystone/p/13930136.html
Copyright © 2011-2022 走看看