2025年~按位取反_按位取反什么意思

~按位取反_按位取反什么意思int b a System out println b 1 计算方法 因为整形是 32 位有符号补码整数表示的 因此将整形转换为二进制后为 a 十进制 0 二进制 0000 0000 0000 0000 0000 0000 0000 0000 a 的二进制 1111 1111 1111 1111 1111 1111 1111 1111 补码 a 转换为原码 第一步

int b = ~a;

System.out.println(b); // -1

计算方法:

因为整形是32位有符号补码整数表示的。因此将整形转换为二进制后为:

a

十进制 0

二进制 0000 0000 0000 0000 0000 0000 0000 0000

~a的二进制 1111 1111 1111 1111 1111 1111 1111 1111 (补码)

~a转换为原码

第一步:减1

1111 1111 1111 1111 1111 1111 1111 1110

第二步: 取反(符号位不变)

1000 0000 0000 0000 0000 0000 0000 0001 (原码 即值为1)

按位异或(^),按位与(&),按位或(|)类似。

Java中存在位左移和位右移。其中位右移包括有符号右移(>>)和无符号右移(>>>)。位左移只有有符号左移(<<)。

无符号右移和有符号右移的区别是:

无符号位右移左端添加的始终是0,而有符号位移左端如果是负数则添加1,如果是正数则添加0

编程小号
上一篇 2025-01-16 18:33
下一篇 2025-01-16 18:27

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/hz/148886.html