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

~按位取反_按位取反什么意思inta=0;intb=~a;System.out.println(b);  // -1计算方法:因为整形是32位有符号补码整数表示的。因此将整形转换为二进制后为:a 十进制0二进制00000000000000000000000000000000~a的二进制1111111111111111111111111

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

int a = 0;

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/170460.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号