美文网首页
【Golang】取反码(^ 异或)- 获取最大整数

【Golang】取反码(^ 异或)- 获取最大整数

作者: 马蹄哒 | 来源:发表于2020-02-18 19:59 被阅读0次

Golang的比特位运算符——异或(^),可以用来取整数的反码

^uint(0) :最大无符号整数

int(^uint(0) >> 1) :最大有符号整数
int(^(^uint(0) >> 1)) :最小负整数

package main

import "fmt"

func main() {
    uMax := ^uint(0)
    fmt.Printf("%#x\n", uMax)  //32位机器:0xffffffff  ; 64位机器:0xffffffffffffffff
    fmt.Println(uMax)

    sMax := int(^uint(0) >> 1)
    sMin := int(^sMax)
    fmt.Printf("%#x\n", sMax) //32位机器:0x7fffffff  ; 64位机器:0x7fffffffffffffff
    fmt.Println(sMax)
    fmt.Printf("%#x\n", sMin)
    fmt.Println(sMin)
}

输出:

0xffffffffffffffff 
18446744073709551615
0x7fffffffffffffff
9223372036854775807   
-0x8000000000000000
-9223372036854775808     

相关文章

  • 【Golang】取反码(^ 异或)- 获取最大整数

    Golang的比特位运算符——异或(^),可以用来取整数的反码 ^uint(0) :最大无符号整数 int(^ui...

  • python

    1,整数部分余数部分 x//y 是相除取整数部分x%y 是相除取余数部分 2,异或 x**2是平方x^2 是异或 ...

  • python中取整

    向上取整 定义:大于或等于 x 的最大整数 math.ceil(x) 向上取整运算为Ceiling,用数学符号⌈...

  • 二叉堆

    1. 思考 Top k 问题: 从海量数据中获取前k个 最大值 或 最小值;比如从 一百万 个整数中,获取最大的...

  • decimal.js API

    获取绝对值 获取整数 获取正无穷大方向的整数 获取负无穷大方向的整数 获取最大值 获取最小值 获取大于等于0小于1...

  • 22-位运算符

        位运算指的是可以直接进行二进制数据的计算处理,主要有:与(&)、或(|)、异或(^)、反码(~)、移位处理...

  • golang 异或加解密

    func XorEncodeStr(msg, key string) string { ml := len(msg...

  • JS向上取整、向下取整、四舍五入等

    只保留整数部分(丢弃小数部分) 向下取整(<= 该数值的最大整数,和parseInt()一样) 向上取整(有小数,...

  • JS之向上取整、向下取整、四舍五入等

    只保留整数部分(丢弃小数部分) 向下取整(<= 该数值的最大整数,和parseInt()一样) 向上取整(有小数,...

  • C语言中浮点型的存储方式

    我们知道,整数在内存中是以补码的形式存放,其中正整数的原码反码补码相同;而负数的补码是它的反码加1. 例: 那么浮...

网友评论

      本文标题:【Golang】取反码(^ 异或)- 获取最大整数

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