& 和 && 的区别,与(&)运算符、位移运算符(<< 、>>、>>>)的含义及使用(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示例)的更多相关文章

  1. PHP 位移运算符(<<左移和>>右移)

    位移运算符 << 位左移 左移运算的实质是将对应的数据的二进制值逐位左移若干位,并在空出的位置上填0,最高位溢出并舍弃.例 如 $a=10; $b=$a<<2; 则$b=40, ...

  2. C#位移运算符

    代码如下: /// <summary> /// 位移运算符"<<"左位移运算符,">>"右位移运算符 /// 在进行位移运算 ...

  3. Java补码表和位移运算符

    在java中数据都是以二进制的形式保存的. 但是我们看到的数据怎么是10进制的? 因为java展示之前会自动调用toString()方法 这里以4位2进制为例,4位2进制只能表示16个数,即0-15. ...

  4. Java学习路线:Java中的位移运算符介绍

    学习java本来就是一件日积月累的事情,或许你通过自学能掌握一些皮毛技术,学到java的一些基本大面,但想要做到精通,还是需要自己技术的日积月累和工作经验的不断积累. 今天给大家分享的技术知识是:ja ...

  5. Java 中位移运算符 >>,>>>,<<

    Java 中的三种位移运算符 java中有三种移位运算符 <<      :     左移运算符,num << 1,相当于num乘以2 >>      :     ...

  6. C语言实现用位移运算符进行加减乘…

      最近,在百度知道上回答问题,然后看见有的人问如何用位移运算符去进行加减乘除运算,于是巩固今天就在这总结一下.   先讲讲总体思路: 加法运算:将一个整数用二进制表示,其加法运算就是:相异(^)时, ...

  7. 正经学C#_位移与其位移运算符[c#入门经典]

    在c#入门经典一书中,最为糟糕的一节就是位移了,完全没有讲明白,也没有说全,似乎只是轻轻点了一下何为位移,带了两次原码和补码,完全不理会是否明白不明白.这一点这本书很差.因为此书说了,在大多数应用开发 ...

  8. Java位运算符、位移运算符;原码、反码、补码

    文章背景:雪花算法 id 生成长度问题. Java位运算符 - 异或运算符(^)<p>运算规则:两个数转为二进制,然后从高位开始比较,如果相同则为0,不相同则为1.</p> - ...

  9. java位移运算符 转

    https://blog.csdn.net/qq_36134429/article/details/78286416#commentsedit java移位运算符不外乎就这三种:<<(左移 ...

随机推荐

  1. Pikachu-环境搭建

    1.首先进行基础环境——本地服务器搭建. 这里使用xampp实现. 首先安装软件 配置apache 启动xampp以搭建本地服务器 2.安装Pikachu 配置xampp数据库信息 打开config. ...

  2. PHP中使用date获取上月最后一天出现的问题

    上次做项目时,发现一个问题,这里记录一下: 问题: 在使用date函数获取上一个月最后一天或下个月最后一天时,如果当前日期是31号,获取的数据有问题. // 2019-12-01 正确应该是 2019 ...

  3. 【戾气满满】Ubuntu 18.04使用QT通过FreeTDS+unixODBC连接MSSQL填坑记(含泪亲测可用)

    前言 照例废话几句,想玩下QT,但是学习吧总得想点事情做啊,单纯学习语法用法这些?反正我是学不下去的,脑袋一拍,就先学下怎么连接数据库吧!然而万万没想到,我这是给自己挖了一个深深的坑啊! 学习自然去官 ...

  4. 使用PIL将图片转成字符

    注意:转化成txt后,txt的字体使用“宋体”,不能使用“微软雅黑”,否则图像会变形 import numpy as npfrom PIL import Image if __name__ == '_ ...

  5. Cross-Site Scripting:Persistent 跨站点脚本:持久性

  6. Prometheus学习系列(四)之Prometheus 配置说明

    前言 本文来自Prometheus官网手册 和 Prometheus简介 说明 Prometheus通过命令行和配置文件进行配置,命令行配置不能修改的系统参数(例如存储位置,要保留在磁盘和内存中的数据 ...

  7. (七十七)c#Winform自定义控件-采样控件-HZHControls

    官网 http://www.hzhcontrols.com 前提 入行已经7,8年了,一直想做一套漂亮点的自定义控件,于是就有了本系列文章. GitHub:https://github.com/kww ...

  8. 精通awk系列(5):BEGIN和END语句块

    回到: Linux系列文章 Shell系列文章 Awk系列文章 BEGIN和END语句块 awk的所有代码(目前这么认为)都是写在语句块中的. 例如: awk '{print $0}' a.txt a ...

  9. C#面向对象-多态

    面向对象的三大特性(封装,继承,多态)大多少人都应该知道.前两个的话比较容易理解.本文主要说一下面向对象中的多态. 什么是多态?不同的对象对同一操作,产生不同的执行结果.这就是多态.那么多态又包含了: ...

  10. ling to sql创建临时变量 let的使用

    使用let赋值给临时变量 var dailys = from f in _postgreDbContext.draws let temp = f.review_time.Value.Date wher ...