go语言int类型最大值

 

 正数的补码是自己本身

负数的补码是,先取反码(首尾不反),然后+1

 

2.  在Go语言中

  ^0表示对0取反

  我们假如是4位代表一个数字的话,最高位是符号位

  0在计算机中用补码的形式存在是 : 0000

  取反得到  :1111  (是-1在计算机中以补码的形式存在,所以^0 就是 -1)

  所以 ^1 就是 1110 就是 -2

 

3.  Go语言的最大值

  a.  如果是一个无符号的数字

  那么最大值就是  1111

  那么就是  ^uint8(0)  ,^uint16(0)  ^uint32(0)  ^uint64(0)

  

  b.  如果是一个有符号的数数字

  那么最大值就是   0111

  那么就是 0000 取反  1111  后移一位 0111

  那么就是   int8(^uint8(0) >> 1)  int16(^uint16(0) >>1 )

posted @ 2019-10-05 17:19  式微胡不归  阅读(9176)  评论(0编辑  收藏  举报