在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/

与,或,非,异或,左移,右移,位运算符号总结相关推荐

  1. python左移右移位运算_荐Python : 位运算 —— 与、或、异或、左移、右移

    Python : 位运算 -- 与.或.异或.左移.右移 位运算 位运算是把数字用 二进制 表示之后,对每一位上 0 或者 1 的运算.位运算共有 5 种运算:与.或.异或.左移.右移. 与.或.异或 ...

  2. python左移右移位运算_Python这些位运算的妙用,绝对让你大开眼界

    位运算的性能大家想必是清楚的,效率绝对高.相信爱好源码的同学,在学习阅读源码的过程中会发现不少源码使用了位运算.但是为啥在实际编程过程中应用少呢?想必最大的原因,是较为难懂.不过,在面试的过程中,在手 ...

  3. 左移右移位运算_计算机硬件技术基础M2——计算机运算基础(二)

    在上一篇中,我们学习到了计算机底层的一些机器码,以及一些行业标准,这一章,我们将接着学习机器码的一些比较与相关计算. 一.浮点数表示和定点数的比较 ① 当字长相同时,浮点数表示的范围要大得多. ②浮点 ...

  4. 运算符“||”与“|”,“”和“”的区别 (附带各类位运算符号详解(、|、^、~、<<、>>、>>>)

    区别一: 定义不同: || 和 | 都是表示"或",区别是||只要满足第一个条件,后面的条件就不再判断,而|要对所有的条件进行判断. 区别二: 与操作和或操作的区别 (1)在Jav ...

  5. C语言基础位运算符号

    C语言基础位运算符号 1.<< 左移 00011000 << 3 = 11000000(便携的赋值方法:<<=) 2.>> 右移 00100100 &g ...

  6. java符号位_java 位运算符号

    <道生一,一生二,二生三,三生万物>出自老子的<道德经>第四十二章.主要讲述了一.二.三这几个数字,并不把一.二.三看作具体的事物和具体数量.它们只是表示"道&quo ...

  7. c语言编程中的或逻辑的符号 符号如何输入,C语言中逻辑运算符(,||,!)和位运算符号(,|,^)...

    1. C语言中逻辑运算符(&&,||,!)和位运算符号(&,|,^)的区别 在C语言中,编程者经常混淆两组运算符:(&&,||,!)和(&,|,^).第 ...

  8. Python 位运算符号

    Python 位运算符号 文章链接 posted on 2018-06-23 16:32 luoganttcc 阅读(...) 评论(...) 编辑 收藏

  9. 【C语言】位运算符号集

    位运算符号集 程序中的所有数在计算机内存中都是以二进制的形式储存的.位运算就是直接对整数在内存中的二进制位进行操作.比如,and运算本来是一个逻辑运算符,但整数与整数之间也可以进行and运算.举个例子 ...

  10. JS中或﹑与﹑否﹑异或﹑左移﹑右移﹑头尾补零的右移运算符

    1.二进制或运算符(or):符号为 | 逐位比较两个运算子,两个二进制位之中只要有一个为1,就返回1,否则返回0. 0 | 3 // 3 上面代码中,0和3的二进制形式分别是00和11,所以进行二进制 ...

最新文章

  1. Java 修饰符的总结
  2. data es集群master_Kubernetes Helm3 部署 ElasticSearch amp; Kibana 7 集群
  3. 深度丨2017年深度学习重大研究进展全解读
  4. Python 执行js的2种解决方案-乾颐堂
  5. java多线程生产者与消费者问题_java多线程实现生产者与消费者问题
  6. 硬中断、软中断和信号
  7. 【FICO 汇率】汇率
  8. JS单引号嵌套的问题,怎么改才能对呢!
  9. excel python插件_如何利用Excel与Python制作PPT
  10. Spring : Spring 切面优先级
  11. 工欲善其事必先利其器之搜索引擎
  12. ie版本过低提示升级ie的示例
  13. jquery ui 发布jquery.ui-1.6rc4版本,漂亮多了
  14. sqlplus配置连接mysql_sqlplus连接远程数据库
  15. 服务器怎么用iso文件装系统,ISO镜像文件能直接安装吗 怎么使用iso镜像文件安装系统...
  16. magicbookpro做php开发,荣耀MagicBook Pro锐龙版,一款为大学生量身打造的笔记本
  17. English trip EM2-PE 3B Teacher:Olivia
  18. 基金投资从入门到精通
  19. 从了解Linux开始
  20. 中金电信 文思海辉 pactera email 邮箱设置

热门文章

  1. centos8 挂载ntfs_CentOS系统挂载U盘、NTFS移动硬盘
  2. latex 行间公式大小(批量设置)
  3. 阿里云服务器以及CDN支持IPV6的方法
  4. dvwa brute force(暴力破解)
  5. linux 4t磁盘格式化,Ubuntu 16.04系统挂载4T硬盘
  6. JAVA项目:Java实现飞扬的小鸟(Flappy Bird)
  7. 深度解析FPS游戏外挂+解决方案
  8. 联想小新锐7000安装win10和ubuntu18.04双系统踩坑
  9. MVC实现SQL多表查询并导出表格
  10. OpenMMLab简介