二进制位运算(按位与、按位或、异或、左移、右移、非)
1、按位与运算符(&)
参加运算的两个数,按二进制位进行“与”运算。
运算规则:只有两个数的二进制同时为1,结果才为1,否则为0。(负数按补码形式参加按位与运算)
即 0 & 0= 0 ,0 & 1= 0,1 & 0= 0, 1 & 1= 1。
例:3 &5 即 00000011 & 00000101 = 00000001 ,所以 3 & 5的值为1。
2、按位或运算符(|)
参加运算的两个数,按二进制位进行“或”运算。
运算规则:参加运算的两个数只要两个数中的一个为1,结果就为1。
即 0 | 0= 0 , 1 | 0= 1 , 0 | 1= 1 , 1 | 1= 1 。
例:2 | 4 即 00000010 | 00000100 = 00000110 ,所以2 | 4的值为 6 。
3、异或运算符(^)
参加运算的两个数,按二进制位进行“异或”运算。
运算规则:参加运算的两个数,如果两个相应位为“异”(值不同),则该位结果为1,否则为0。
即 0 ^ 0=0 , 0 ^ 1= 1 , 1 ^ 0= 1 , 1 ^ 1= 0 。
例: 2 ^ 4 即 00000010 ^ 00000100 =00000110 ,所以 2 ^ 4 的值为6 。
4、左移( << )
将6左移2位:6<<2
0000 0110 十进制6
0001 1000 左移2位后,低位补0,换算成十进制为24
5、右移( >> )
将6右移2位:6>>2
0000 0110 十进制6
0000 0001 右移2位后,高位补0,换算成十进制为1
6、无符号右移( >>> )
将 6 无符号右移2位:6>>>2
0000 0110
0000 0001 右移2位后,高位补0,换算成十进制为1
将 -6 无符号右移2位:-6>>>2
1111 1111 1111 1111 1111 1111 1111 1010 负数都以补码表示
0011 1111 1111 1111 1111 1111 1111 1110 换算成十进制为1073741822
7、非( ~ ) 非是一元操作符
操作数的每一位1变为0,0变为1
将6非运算:~6
0000 0110
1111 1001 换算成十进制为-7
二进制位运算(按位与、按位或、异或、左移、右移、非)相关推荐
- JS中或﹑与﹑否﹑异或﹑左移﹑右移﹑头尾补零的右移运算符
1.二进制或运算符(or):符号为 | 逐位比较两个运算子,两个二进制位之中只要有一个为1,就返回1,否则返回0. 0 | 3 // 3 上面代码中,0和3的二进制形式分别是00和11,所以进行二进制 ...
- c语言负数左移右移_C语言位运算符:与、或、异或、取反,左移和右移
C语言位运算符:与.或.异或.取反.左移和右移 个位操作运算符.这些运算符只能用于整型操作数,即只能用于带符号或无符号的char,short,int与long类型. ,则该位的结果值为1,否则为0 | ...
- 位与()、位或(|)、异或(^) 、左移<<、右移>>、原码、反码、补码的简单应用
一.位与(&).位或(|).异或(^) 1.位与运算(&):两位同时为1,结果才为1,否则为0 参加运算的两个数据,按二进制位进行"&"运算. 运算规则:0 ...
- c/c++位操作简介--移位、位与、位或、异或
概述 C/C++里面位操作符表示为如下:左移位 << ,右移位 >>,位与 &,位或 | ,位异或 ^,按位求反~. 位操作符针对的是补码形式(可参见下面的例子,其实我 ...
- 位运算专题一:位与、位或、位反
位运算只用于所有的整型!!(char,short,int,long int,long long,unsigned char,unsigned short......),浮点值均不适用!!! 位运算有哪 ...
- c语言位运算负数的实例_JavaScript基础教程(四)二进制位运算
JavaScript基础教程二进制位运算 JavaScript中的位运算是针对二进制数据提供的运算与操作.在JavaScript标准中规定了二进制位运算时其操作数长度为32位,其最高位为符号位,因此能 ...
- 位运算符:按位与(),按位或(|),按位异或(^),取反(~)左移()和右移()
数据在内存中是以二进制的形式存放的,计算机存储数据的最小单位是位(bit),一个二进制位可以表示两种状态(0和1),一个字节通常由8位二进制位组成.C语言支持按位运算,按位运算也就是对字节或者字中的实 ...
- Java二进制位运算、移位运算、、
为什么80%的码农都做不了架构师?>>> Java二进制位运算.移位运算 思考题 1.请看下面的代码段,回答a,b,c,d,e结果是多少? public static void ...
- 位操作符详解(移位操作符(左移/右移)、按位与‘’操作符、按位或‘|’操作符、按位异或‘^’操作符)
位操作是程序设计中对位模式按位或二进制数的一元和二元操作: 在许多微处理器上,位运算与加减运算速度大致相同,但位运算的速度远快于乘法运算: 位操作符的使用,可以使我们在处理一些问题上方便许多. 移位操 ...
- python左移右移位运算_荐Python : 位运算 —— 与、或、异或、左移、右移
Python : 位运算 -- 与.或.异或.左移.右移 位运算 位运算是把数字用 二进制 表示之后,对每一位上 0 或者 1 的运算.位运算共有 5 种运算:与.或.异或.左移.右移. 与.或.异或 ...
最新文章
- RDKit | 基于RDKit从分子中提取3D药效团特征
- java 和 mysql 获取周 星期 的第一天 最后一天 或者 月的 日期(字符串转日期,日期转字符串,日期加减)...
- 离开页面提示是否保存页面修改内容的简单实现
- python实现WebsocketServer 服务端
- LeetCode 98验证二叉搜素树(中序遍历)99恢复二叉搜索树
- 承载网络开启后显示无法连接到Internet,已解决
- Android 使用jtds远程访问数据库
- 多线程线程池的实现java_如何在Java中实现线程池
- HDU 1520Anniversary party(树型DP)
- Python突击(一)
- android利用数字证书对程序签名
- Android 7.0 抓包
- 41、财务总账科目余额表,三栏式总账,三栏式明细账 查询条件科目增加多选查询
- Secondary NameNode:它究竟有什么作用?
- 使用Mono.Cecil对MSIL进行注入
- LeetCode 915. 分割数组**(double,需要trp)
- IntelliJ配置jenkins服务的Crumb Data
- try的动词用法_try的用法都有什么
- 笔记本“电源已接通,未充电”的解决办法 win7
- Linux查看/设置服务器时间