& 和 && 的区别,与(&)运算符、位移运算符(<< 、>>、>>>)的含义及使用(Java示例)
& 和 && 的区别,与(&)运算符、位移运算符(<< 、>>、>>>)的含义及使用(Java示例)
1. & 和 &&
& 和 && 都是逻辑运算符 都是判断两边是否为真
运算符两边没有值的改变时,两者结果一样
运算符两边有值改变时,&会两侧都执行运算,&&只会在两侧都是两侧都是true时两侧都进行运算否则只执行左侧
- 运算符两边没有值的改变时
@Test
public void Operator(){
int m =1,n =2;
System.out.println(m>0&n>0);
System.out.println(m>0&&n>0);
}
/*
* 输出结果:
true
true
* */
- 运算符两边有值改变时
@Test
public void Operator(){
int m =1,n =1;
System.out.println((m++>2&m++>0) + " " + m);
System.out.println((n++>2&&n++>0) + " " + n);
}
/*
* 输出结果:
false 3
false 2
* */
两侧都为true时两侧都执行运算
@Test
public void Operator() {
int m = 1, n = 1;
System.out.println((m++ > 2 & m++ > 0) + " " + m);
System.out.println((n++ > 0 && n++ > 0) + " " + n);
}
/*
* 输出结果
false 3
true 3
* */
2. 与(&)运算符
& 运算符是对数值转化为二进制进行&运算,对应位都为1是取1否则取0 例如:
128的二进制表示为1000 0000
129的二进制表示为1000 0001
128&129 10000000
128&129 —>128
3&2 —>2
128&127—>0
@Test
public void AndOperator(){
System.out.println(128&129);
System.out.println(3&2);
System.out.println(128&127);
}
/*
* 输出结果:
128
2
0
* */
3.移位运算符
在数据在二进制的前提下:
"<<" 表示向左移动指定的二进制位数,低位空位补零,相当于在后边直接加上指定个数的0,
如:2<<1—>4,3<<1—>6;
"<<" 表示向右移动指定的二进制位数低位舍弃,高位空位补零,相当于在末尾直接去掉指定的位数,
如:2>>1—>1,128>>3—>16;
“>>>”按二进制形式把所有的数字向右移动对应位数,低位移出(舍弃),高位的空位补零。对于正数来说和带符号右移相同,对于负数来说不同。
其他结构和>>相似
& 和 && 的区别,与(&)运算符、位移运算符(<< 、>>、>>>)的含义及使用(Java示例)的更多相关文章
- PHP 位移运算符(<<左移和>>右移)
位移运算符 << 位左移 左移运算的实质是将对应的数据的二进制值逐位左移若干位,并在空出的位置上填0,最高位溢出并舍弃.例 如 $a=10; $b=$a<<2; 则$b=40, ...
- C#位移运算符
代码如下: /// <summary> /// 位移运算符"<<"左位移运算符,">>"右位移运算符 /// 在进行位移运算 ...
- Java补码表和位移运算符
在java中数据都是以二进制的形式保存的. 但是我们看到的数据怎么是10进制的? 因为java展示之前会自动调用toString()方法 这里以4位2进制为例,4位2进制只能表示16个数,即0-15. ...
- Java学习路线:Java中的位移运算符介绍
学习java本来就是一件日积月累的事情,或许你通过自学能掌握一些皮毛技术,学到java的一些基本大面,但想要做到精通,还是需要自己技术的日积月累和工作经验的不断积累. 今天给大家分享的技术知识是:ja ...
- Java 中位移运算符 >>,>>>,<<
Java 中的三种位移运算符 java中有三种移位运算符 << : 左移运算符,num << 1,相当于num乘以2 >> : ...
- C语言实现用位移运算符进行加减乘…
最近,在百度知道上回答问题,然后看见有的人问如何用位移运算符去进行加减乘除运算,于是巩固今天就在这总结一下. 先讲讲总体思路: 加法运算:将一个整数用二进制表示,其加法运算就是:相异(^)时, ...
- 正经学C#_位移与其位移运算符[c#入门经典]
在c#入门经典一书中,最为糟糕的一节就是位移了,完全没有讲明白,也没有说全,似乎只是轻轻点了一下何为位移,带了两次原码和补码,完全不理会是否明白不明白.这一点这本书很差.因为此书说了,在大多数应用开发 ...
- Java位运算符、位移运算符;原码、反码、补码
文章背景:雪花算法 id 生成长度问题. Java位运算符 - 异或运算符(^)<p>运算规则:两个数转为二进制,然后从高位开始比较,如果相同则为0,不相同则为1.</p> - ...
- java位移运算符 转
https://blog.csdn.net/qq_36134429/article/details/78286416#commentsedit java移位运算符不外乎就这三种:<<(左移 ...
随机推荐
- Dynamic Code Evaluation:Code Injection 动态代码评估:代码注入
- jQuery实现下拉框默认选中
<form class="form-inline" method="post" action="/score_result/"> ...
- CSS雪碧图(精灵图)使用
1:CSS雪碧图:CSS雪碧图 即 CSS Sprites,也有人叫它CSS精灵图. 2:雪碧图的由来:一个网站的页面需要大量的小图片或者小图标,但是大量的图片如果放在服务器上,每次当打开网站并且向服 ...
- Dynamics CRM 2013开始推出的服务器端同步来配置邮件服务
我是微软Dynamics 365 & Power Platform方面的工程师罗勇,也是2015年7月到2018年6月连续三年Dynamics CRM/Business Solutions方面 ...
- 华为开发者联盟 方舟编译器 DevEco IDE
华为开发者联盟 https://developer.huawei.com/consumer/cn/ 方舟编译器是为支持多种编程语言.多种芯片平台的联合编译.运行而设计的统一编程平台,包含编译器.工具链 ...
- [转]RPA Developer Advanced Certification - Exam #1 UiPath 练习
本文转自:https://github.com/miyaichi/CertificationExam1 RPA Developer Advanced Certification - Exam #1 E ...
- SpringCloud之Eureka:集群搭建
上篇文章<SpringCloud之Eureka:服务发布与调用例子>实现了一个简单例子,这次对其进行改造,运行两个服务器实例.两个服务提供者实例,服务调用者请求服务,使其可以进行集群部署. ...
- 小程序模板template使用介绍
template(模板):是可以在wxml中引用的代码,就是在wxml中引用公用的wxml类型的代码,它的作用类似于组件,因此这里简单的说明下template与Component (组件)的区别. t ...
- Qt的诞生和本质
有没有发现,在这个主函数里面没有了消息循环了.消息循环到哪里去了呢? 我们知道,每个GUI应用程序都有消息循环,一般都需要将消息循环while那个函数写到main的最后位置.那既然如此,为了代码复用, ...
- git 删除文件/移动文件
1.git rm 删除文件 git restore --file (git老版本:git checkout) git rm --file(本地和管理都已删除) git rm --cached file ...