栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java中^,&,|的区别

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java中^,&,|的区别

|:两个二进制对应位都为0时,结果等于0,否则结果等于1;

&:两个二进制的对应位都为1时,结果为1,否则结果等于0;

^:两个二进制的对应位相同,结果为0,否则结果为1。

| 例如:

2|3 结果是 3,以一个字节为列,2和3在计算机中的储存如下:

2: 0000 0010

3: 0000 0011

根据定义:对应位都0时,结果等于0,否则结果等于1

故:2|3 = 0000 0011 = 3;

当出现负数时,需要注意,运算是以补码的形式进行:

如:-2 | 3 = -1

源码运算:-2 | 3 = 1000 0010 | 0000 0011 = 1000 0011 =-3  错误;

因为在计算机中运算和储存都是以补码进行的:

补码运算:-2 | 3 = 1111 1110 | 0000 0011 = 1111 1111(补码)= (转换)= 1000 0001(源码) = -1

& 例如:

5 & 8 结果是  以一个字节为列,5和8在计算机中的储存如下:

5: 0000 0101

8: 0000 1000

根据定义:对应位都为1时,结果为1,否则结果等于0

故:5 & 8 = 0;

当出现负数是,以补码进行运算:

如:-5 & -8 = 1111 1011(补码) | 1111 1000(补码) = 1111 1000(补码) =(转换)= 1000 1000(源码) = -8

^ 例如:

10 ^ 8 结果是  以一个字节为列,10和8在计算机中的储存如下:

10:0000 1010

8:  0000 1000

根据定义:对应位相同,结果为0,否则结果为1

故:10 ^ 8 = 2;

当出现负数是,以补码进行运算:

如:-10 ^ -8 = 1111 0110(补码) | 1111 1000(补码) = 0000 1110(补码) = 0000 1110(源码) = 14

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/424844.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号