gpt4 book ai didi

java - Java 中对 Unsigned Int 进行非操作

转载 作者:行者123 更新时间:2023-12-02 12:02:45 25 4
gpt4 key购买 nike

所以我现在 ~n 给了我对整数 n 的 not 操作,但是有什么方法可以将其读取为无符号整数吗?

例如~50,我得到-51,而我实际上想要13。在Java中有什么办法可以做到这一点吗?

例如,二进制的 50 是 110010。当数字反转后,我们应该得到001101

最佳答案

如果要保持前导零位不变,可以在“二进制非”运算后将它们设置为零。我们需要做的就是创建 11...1 掩码,其中 1 的数量等于 n 中有效位的数量,然后我们可以将所有其他值设置为零位:

int invert(int n) {
int mask = (Integer.highestOneBit(n) << 1) - 1;
return (~n & mask);
}

关于java - Java 中对 Unsigned Int 进行非操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47126402/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com