按位与(&)和按位或(|)
/**
* 按位与 : &
* 按位或 : |
*/
public class Demo { /**
* 按位与: 为什么(5 & 9)的值等于1
* 按位或: 为什么(5 | 9)的值等于13
*/
@Test
public void test() {
System.out.println(5 & 9); //
System.out.println(5 | 9); // System.out.println(Integer.toBinaryString(5)); //
System.out.println(Integer.toBinaryString(9)); // /*
5的二进制数据:0101
9的二进制数据:1001 1)与操作&:从左向右,上下数字比较,两个都是1,相同位才赋值为1
0101
1001
-----
0001 得出结果:0001(二进制数据),转为十进制后的值为1 2)或操作|:从左向右,上下数字比较,有一个是1,相同位就赋值为1
0101
1001
-----
1101 得出结果:1101(二进制数据),转为十进制后的值为13
*/
} /**
* 按位与(&)、按位或(|)的使用场景
*/
@Test
public void test1() {
// 配合数字1,2,4,8..进行使用 // 假设有5个类别
int type1 = 1;
int type2 = 2;
int type3 = 4;
int type4 = 8;
int type5 = 16; // 装入type1,type2,type3,type5
int types = type1 | type2 | type3 | type5; // 未装入type4 System.out.println(types); // 23 // 判断集合中是否有某个类别
System.out.println((types & type1) == type1); // true System.out.println((types & type2) == type2); // true System.out.println((types & type3) == type3); // true System.out.println((types & type4) == type4); // false System.out.println((types & type5) == type5); // true
} }
按位与(&)和按位或(|)的更多相关文章
- “全栈2019”Java第二十章:按位与、按位或、异或、反码、位运算
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...
- c# 按位与,按位或
在工作中遇到按位或组合权限串.一直不是特别明白.今天终于花了半个下午的时间搞明白其中的道理. 首先每一个权限数都是2的N次方数 如:k1=2 ; //添加 k2=4 ; //删除 k3=8; //修改 ...
- 位运算------按位与、按位或、按位异或、取反、<<、>>、>>>
程序中的所有数在计算机内存中都是以二进制的形式储存的,位运算就是直接对整数在内存中的二进制位进行操作. 知识点: 1.原码.反码.补码(以byte的1.-1举例) 示例 ...
- 按位与&、按位或|、按位异或^
与1进行位与&运算,值保持不变: 与0进行位与&运算,值清0: 按位与&常用于将整型变量中某些位清0,而其他位保持不变. 与1进行位或|运算,值置1: 与0进行位或|运算,值保 ...
- 屌丝也用按位与(&),按位或(|) (二)
上篇讲到了,用按位操作进行配置,下边来讲一个大神也在用的例子 linux的权限系统 我们知道一个文件,如果是777,那么是最高的权限,那这个七是咋构成的,我会告诉你是 4+2+1么? 我会告诉你,是1 ...
- Java 位运算(移位、位与、或、异或、非)
Java提供的位运算符有:左移( << ).右移( >> ) .无符号右移( >>> ) .位与( & ) .位或( | ).位非( ~ ).位异或( ...
- CLR via C# 摘要二:IL速记
最简单的IL程序 .assembly test {} .method void Func() { .entrypoint ldstr "hello world" call void ...
- pyhton学习笔记(基础五:数据类型、数据运算)
数据类型初识 1. 数字 整数:2是一个整数的例子 长整数 不过是大一些的整数 3.23和52.3E-4是浮点数的例子.E标记表示10的幂.在这里,52.3E-4表示52.3*10-4. (-5+4j ...
- Python初识(一)
首先我有编程语言的基础,你也有就最好了,这样会很快认识Python. 当然由于本人见识和学识的局限性,请广大猿/媛们多多包涵与指正(希望多评论哦),共同进步嘛. ◆ 准备环境:到python官网下载p ...
- 窥探Swift之需要注意的基本运算符和高级运算符
之前更新了一段时间有关Swift语言的博客,连续更新了有6.7篇的样子.期间间更新了一些iOS开发中SQLite.CollectionViewController以及ReactiveCocoa的一些东 ...
随机推荐
- python常用库之random
random是内建(built-in)函数,作用是产生随机数,使用较多. 1.导入模块 首先是导入模块: import random 接着就可以调用random模块下的函数了,例如: random.r ...
- gravity 和 layout_gravity
gravity : 是控件内部的内容的对齐方式. layout_gravity: 是控件相对于其容器的对齐方式. 如果 LinearLayout 的 android:orientation=&qu ...
- centos6.8 固定IP
# vi /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 BOOTPROTO=static IPADDR=192.168.0.116 NET ...
- Prior Posterior和Likelihood的理解与几种表达方式
- 用PowerShell激活anaconda的环境
1.以管理员身份打开PowerShell 2. 执行conda install -n root -c pscondaenvs pscondaenvs 3. 执行 Set-ExecutionPolicy ...
- angular $digest already in progress
angular.js:11706 Error: [$rootScope:inprog] $digest already in progresshttp://errors.angularjs.org/1 ...
- snmpwalk命令
使用该命令需提前安装好net-snmp*rpm相关包 语法: snmpwalk -v 1或2(代表SNMP版本) -c SNMP读密码 IP地址 OID(对象标示符) (1) -v: 指定snmp的版 ...
- HTML5 学习03——内联 SVG
什么是SVG? SVG 指可伸缩矢量图形 (Scalable Vector Graphics) SVG 用于定义用于网络的基于矢量的图形 SVG 使用 XML 格式定义图形 SVG 图像在放大或改变尺 ...
- 在 iOS 中信任手动安装的证书描述文件
在 iOS 10.3 及更高版本中,手动安装包含证书有效负载的描述文件时,这个证书不会自动受 SSL 信任. 在安装通过电子邮件发送给您或从网站下载的描述文件时,您必须手动开启受 SSL 信任. ...
- 用SublimeText当Unity Shader的编辑器
用Visual Studio写shader实在蛋疼,那可能就会有人要问了,为啥不用插件可视化制作shader呢?因为我是新手,新手还是老老实实敲代码,慢慢来- 所以试着在网上找找,有没有类似的插件或者 ...