gpt4 book ai didi

java - Java 中使用否定的位操作

转载 作者:行者123 更新时间:2023-12-01 18:08:45 24 4
gpt4 key购买 nike

我正在尝试位操作,有人可以提供可以帮助我解决位操作的基本知识吗?我面临以下差异。

System.out.println((~1)&1111); gives 1110. Treating ~1 as 0.
System.out.println((~1)); gives -2.

最佳答案

来自official tutorial通过甲骨文:

The unary bitwise complement operator "~" inverts a bit pattern; it can be applied to any of the integral types, making every "0" a "1" and every "1" a "0"

~1 得到 -2 的原因是 2-complement :

0000 0000 0000 0000 0000 0000 0000 0001

倒置的是

1111 1111 1111 1111 1111 1111 1111 1110

由于 Java 使用 2 补码,因此结果为 -2

<小时/>

将 (~1)&1111 分解为几位:

1111 1111 1111 1111 1111 1111 1111 1110
0000 0000 0000 0000 0000 0100 0101 0111
___________________________________________
0000 0000 0000 0000 0000 0100 0101 0110

0100 0101 0110 以 10 为基数表示为 1110

关于java - Java 中使用否定的位操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34465750/

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