前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >java中的运算 ^, << , >>,&

java中的运算 ^, << , >>,&

作者头像
用户1205080
发布2018-09-12 10:04:21
1.1K0
发布2018-09-12 10:04:21
举报
文章被收录于专栏:编码前线编码前线

1.首先先说说^(异或运算),先看代码

代码语言:c#
复制
public static void main(String[] args) {
    System.out.println("2^3运算的结果是 :"+(2^3));     //打印的结果是:2^3运算的结果是 :1}

那么这个1是怎么来的,我们要知道^、<<、>>等位运算符主要针对二进制,算异或的时候相同的为0,不同的为1 2转换成二进制是0010 3转换成二进制是0011 所以0010^0011的结果就是0001转换成十进制是1 ,所以2^3=1

2.<<向左位移,先看段代码

代码语言:c#
复制
public static void main(String[] args) {
    System.out.println("2<<3运算的结果是 :"+(2<<3));    //2<<3运算的结果是 :16}

在运算的时候同样要把十进制转换成二进制, 2的二进制是0010 ,向左移3位后面用000不齐,结果是10000 二进制的10000转换成十进制是16(从右往左分别是1,2,4,8,16,32….) 3>>向右位移,代码如下

代码语言:c#
复制
public static void main(String[] args) {
    System.out.println("2>>3运算的结果是 :"+(2>>3));    //2>>3运算的结果是 :0}

原理和左移是一样的,先转成二进制0010,再向右侧移动三位,向右侧移动的时候在左侧不齐0,移动几位不齐几位,移动后的二进制是0000 转成十进制就是0了。 4.&运算 按位“与”的计算是把两个数字分别写成二进制形式,然后按照每一位判断,&计算中,只要有一个是0就算成0 看下例子:System.out.println(1&2);打印0 , System.out.println(1&1);打印1 下面解释下原因 1的二进制为:0001 2的二进制为:0010 运算的结果为:0000 ->0 同理两个1的&运算的二进制结果为0001->结果为1

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-08-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 编码前线 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档