与,或,非,异或,左移,右移,位运算符号总结
在Java中,所有数据的表示方法都是以补码的形式表示,如果没有特殊说明,Java中的数据类型默认是int,int数据类型的长度是8位,一位是四个字节,就是32字节,32bit.
一:与运算符(&)
运算规则:
0&0=0;0&1=0;1&0=0;1&1=1
即:两个同时为1,结果为1,否则为0
例如:5&7
十进制5转为二进制的5:0000 0101
十进制7转为二进制的7:0000 0111
结果:0000 0101 ->转为十进制:5
即:5&7 = 5
二:或运算(|)
运算规则:
0|0=0; 0|1=1; 1|0=1; 1|1=1;
即 :参加运算的两个对象,一个为1,其值为1。
例如:5|7 即 0000 0101 | 0000 0111 = 0000 0111,因此,5|7=7。
三:异或运算符(^)
运算规则可以简单理解为相加后不进位
运算规则:0^0=0; 0^1=1; 1^0=1; 1^1=0;
即:参加运算的两个对象,如果两个位为“异”(值不同),则该位结果为1,否则为0。
例如:5^7 = 0000 0101 ^ 0000 0111 =0000 0010,因此,5^7 = 7
性质:
1.N^0=N
2.N^N=0
3.同一批数,通过交换律结合律,最后异或出来是同一个数
四:左移(<<)
运算规则:二进制位向左移动相应位数,高处越位丢弃,低位补0;
如:5<<2,5=00000101,5<<2=00010100=20,即5 * 2ⁿ
公式:m<<n=m* 2ⁿ
五:右移(>>)
运算规则:二进制位向右移动相应位数,低位丢弃,高位补0;
如:5>>2,5=00000101,5>>2=00000001=1,即5/(2ⁿ)向左取整
公式:m>>n=m/2ⁿ
>>>:无符号右移(注意:没有无符号左移)
无符号右移(注意:没有无符号左移)
正数做>>>
运算的时候和>>
是一样的。区别在于负数运算
六:非运算符(~)
运算规则:如果位为0,结果是1,如果位为1,结果是0.
在Java中,所有数据的表示方法都是以补码的形式表示
如:~37
8转为二进制是100101.
补码后为: 00000000 00000000 00000000 00100101
取反为: 11111111 11111111 11111111 11011010
因为高位是1,所以原码为负数,负数的补码是其绝对值的原码取反,末尾再加1。
因此,我们可将这个二进制数的补码进行还原: 首先,末尾减1得反码:11111111 11111111 11111111 11011001 其次,将各位取反得原码:
00000000 00000000 00000000 00100110,此时二进制转原码为38
所以~37 = -38.
进制转换工具
加运算的两个对象,按二进制位进行运算。
进制转换地址:http://tool.oschina.net/hexconvert/
与,或,非,异或,左移,右移,位运算符号总结相关推荐
- python左移右移位运算_荐Python : 位运算 —— 与、或、异或、左移、右移
Python : 位运算 -- 与.或.异或.左移.右移 位运算 位运算是把数字用 二进制 表示之后,对每一位上 0 或者 1 的运算.位运算共有 5 种运算:与.或.异或.左移.右移. 与.或.异或 ...
- python左移右移位运算_Python这些位运算的妙用,绝对让你大开眼界
位运算的性能大家想必是清楚的,效率绝对高.相信爱好源码的同学,在学习阅读源码的过程中会发现不少源码使用了位运算.但是为啥在实际编程过程中应用少呢?想必最大的原因,是较为难懂.不过,在面试的过程中,在手 ...
- 左移右移位运算_计算机硬件技术基础M2——计算机运算基础(二)
在上一篇中,我们学习到了计算机底层的一些机器码,以及一些行业标准,这一章,我们将接着学习机器码的一些比较与相关计算. 一.浮点数表示和定点数的比较 ① 当字长相同时,浮点数表示的范围要大得多. ②浮点 ...
- 运算符“||”与“|”,“”和“”的区别 (附带各类位运算符号详解(、|、^、~、<<、>>、>>>)
区别一: 定义不同: || 和 | 都是表示"或",区别是||只要满足第一个条件,后面的条件就不再判断,而|要对所有的条件进行判断. 区别二: 与操作和或操作的区别 (1)在Jav ...
- C语言基础位运算符号
C语言基础位运算符号 1.<< 左移 00011000 << 3 = 11000000(便携的赋值方法:<<=) 2.>> 右移 00100100 &g ...
- java符号位_java 位运算符号
<道生一,一生二,二生三,三生万物>出自老子的<道德经>第四十二章.主要讲述了一.二.三这几个数字,并不把一.二.三看作具体的事物和具体数量.它们只是表示"道&quo ...
- c语言编程中的或逻辑的符号 符号如何输入,C语言中逻辑运算符(,||,!)和位运算符号(,|,^)...
1. C语言中逻辑运算符(&&,||,!)和位运算符号(&,|,^)的区别 在C语言中,编程者经常混淆两组运算符:(&&,||,!)和(&,|,^).第 ...
- Python 位运算符号
Python 位运算符号 文章链接 posted on 2018-06-23 16:32 luoganttcc 阅读(...) 评论(...) 编辑 收藏
- 【C语言】位运算符号集
位运算符号集 程序中的所有数在计算机内存中都是以二进制的形式储存的.位运算就是直接对整数在内存中的二进制位进行操作.比如,and运算本来是一个逻辑运算符,但整数与整数之间也可以进行and运算.举个例子 ...
- JS中或﹑与﹑否﹑异或﹑左移﹑右移﹑头尾补零的右移运算符
1.二进制或运算符(or):符号为 | 逐位比较两个运算子,两个二进制位之中只要有一个为1,就返回1,否则返回0. 0 | 3 // 3 上面代码中,0和3的二进制形式分别是00和11,所以进行二进制 ...
最新文章
- Java 修饰符的总结
- data es集群master_Kubernetes Helm3 部署 ElasticSearch amp; Kibana 7 集群
- 深度丨2017年深度学习重大研究进展全解读
- Python 执行js的2种解决方案-乾颐堂
- java多线程生产者与消费者问题_java多线程实现生产者与消费者问题
- 硬中断、软中断和信号
- 【FICO 汇率】汇率
- JS单引号嵌套的问题,怎么改才能对呢!
- excel python插件_如何利用Excel与Python制作PPT
- Spring : Spring 切面优先级
- 工欲善其事必先利其器之搜索引擎
- ie版本过低提示升级ie的示例
- jquery ui 发布jquery.ui-1.6rc4版本,漂亮多了
- sqlplus配置连接mysql_sqlplus连接远程数据库
- 服务器怎么用iso文件装系统,ISO镜像文件能直接安装吗 怎么使用iso镜像文件安装系统...
- magicbookpro做php开发,荣耀MagicBook Pro锐龙版,一款为大学生量身打造的笔记本
- English trip EM2-PE 3B Teacher:Olivia
- 基金投资从入门到精通
- 从了解Linux开始
- 中金电信 文思海辉 pactera email 邮箱设置