Golang 判断系统是 32/64-bit

bit := 32 << (^uint(0) >> 63)

64位 的系统中 bit 的值为 64

32位 的系统中 bit 的值为 32

64-bit 32-bit
32 << (^uint(0) >> 63) 64 32
^uint(0) 二进制的值 64个1 32个1
^uint(0) >> 63 二进制的值 1 0
32 << 1 32 << 0
32 * 2^1 32 * 2^0
32 * 2 32 * 1

Golang

84 字

2020-03-26 18:10 +0800