位运算符

尹成课程资料及演示(免费)(文末有资料链接)

位运算符是针对二进制数的每一位进行运算的符号,它是专门针对数字0和1进行操作的。接下来通过一张表来展示Java中的位运算符及其用法,如表1所示。

表1 位运算符

从表1可以看出,Java中的位运算符本质都是针对二进制数0和1进行运算的,所以,在使用位运算符时,都会先将操作数转换成二进制数的形式进行位运算,然后将得到的结果再转换成想要的进制数。

接下来通过一些具体示例对表2-10中描述的位运算符进行详细讲解。为了方面描述,下面的运算都是针对一个byte类型的数,也就是一个字节大小的数的运算,具体如下:

1.位运算符“&”是将参与运算的两个操作数以二进制数的形式进行“按位与”运算,如果相同位上的两个二进制位都为1,则该位的运算结果为1,否则为0。

例如将6和 11进行按位与运算,一个byte类型的数字6对应的二进制数为00000110,数字11对应的二进制数为00001011,具体演算过程如下所示:

00000110

&

00001011

—————————

00000010

运算结果为00000010,对应十进制数值2。

2.位运算符“|”是将参与运算的两个操作数以二进制数的形式进行“按位或”运算,如果相同位上的两个二进制位有一个值为1,则该位的运行结果为1,否则为0。

例如将6与11进行或运算,具体演算过程如下:

00000110

|

00001011

—————————

00001111

运算结果为00001111,对应十进制数值15。

3.位运算符“~”只针对一个操作数进行操作,它会对二进制形式的操作数每位进行取反操作。如果二进制位是0,则取反值为1;如果是1,则取反值为0。

例如将6进行取反运算,具体演算过程如下:

~ 00000110

—————————

11111001

运算结果为11111001,对应十进制数值-7。

4.位运算符“^”是将参与运算的两个操作数以二进制数的形式进行“异或”运算,如果相同位上的两个二进制数值相同,则值为0,否则为1。

例如将6与11进行异或运算,具体演算过程如下:

00000110

^

00001011

—————————

00001101

运算结果为00001101,对应十进制数值13。

5.位运算符“

例如一个byte类型的数字11用二进制表示为00001011,将它左移一位,具体演算过程如下:

00001011

—————————

00010110

运算结果为00010110,对应十进制数值22。

6.位运算符“>>“就是将操作数二进制形式的所有进制位向右移动指定位数。运算时,左边的空位根据原数的符号位补0或者1(原来是负数就全部补1,是正数就全部补0),右边移走的部分舍去。

例如一个byte类型的数字11用二进制表示为00001011,将它右移一位,具体演算过程如下。

00001011 >>1

—————————

00000101

运算结果为00000101,对应十进制数值5。

7.位运算符“>>>”属于无符号右移,就是将操作数二进制形式的所有二进制位不考虑正负数向右移动指定位数。运算时,左边的空位全部补0(不考虑原数正负),右边移走的部分舍去。

例如一个byte类型的数字11用二进制表示为00001011,将它无符号右移一位,具体演算过程如下:

00001011 >>>1

—————————

00000101

运算结果为00000101,对应十进制数值5。

java位运算符取反_Java运算符之位运算符相关推荐

  1. java位运算符取反_java运算符

    Java 语言支持如下运算符: 算术运算符: +,-,*,/,%,++,-- 赋值运算符 = 关系运算符: >,<,>=,<=,==,!=, instanceof 逻辑运算符: ...

  2. 位运算符取反_Java常见的运算符——位运算

    位运算符 <<左移 先说左移运算符,它的符号表示是<< 举个例子,先定义一个int类型的数,十进制的value = 733183670,转换成二进制在计算机中的表示如下(int ...

  3. 位运算符——取反运算符~的理解

    学习位运算符中的取反运算符-- ~ 时,要搞清楚以下几点: 正数的补码是其原码,原码就是其二进制数表示 负数的补码为符号位不变,原码取反再加一 二进制数有八位数,第一位就是符号位 符号位中,0代表正数 ...

  4. java数字取反_java中源码反码补码与取反的理解

    数字在计算机里是按照二进制来表示的. 箭头朝哪边就是朝哪边移动 补码,反码,和源码 负数原码转化为补码:符号位不变,数值位按位取反,末尾加一. 负数补码转化为原码:符号位不变,数值位按位取反,末尾加1 ...

  5. java图片颜色取反色,照片底片模式

    全栈工程师开发手册 (作者:栾鹏) java教程全解 java图片颜色取反色,照片底片模式 测试代码 public static void main(String[] args) {//文件与Buff ...

  6. java中平方的表达式_JAVA语言中的运算符和表达式

    JAVA--运算符 按运算符要求的运算符个数可分为一元.二元.三元运算符: 一元运算符有一个操作数:如正数或者负数前面的"+"."-",和自增"++& ...

  7. JAVA中常用的逻辑运算符_Java中的常见运算符以及使用

    Java中的运算符有算术运算符.关系运算符.逻辑运算符.赋值运算符.字符串连接运算符.三目运算符等.下面介绍一下这几种. 1.算术运算符 包括:加(+).减(-).乘(*).除(/).取余(%).自加 ...

  8. java字符串取反_Java探索之string字符串的应用代码示例

    String类中提供了丰富的用于操作字符串的方法. int indexOf(String str) 该方法用于返回当给定字符串在当前字符串中的位置,若当前字符串不包含给定字符串则返回-1. 重载的方法 ...

  9. R中 %in% 运算符取反

    原先: x %in% y 取反: !(x %in% y) 注意非符号"!"位于整个语句之前,而非%in%之前.

最新文章

  1. 设计模式-策略模式,观察者模式,装饰者模式,静态工厂模式,工厂方法模式
  2. 动力节点老杜mysql文件_mysql主从复制+mysql主从复制延迟解决方案
  3. Proof-of-Stake (POS) outperforms Bitcoin’s Proof-of-Work (POW)
  4. Linux使用lvresize扩展或缩减LV逻辑卷大小
  5. 想聊天?自己搭建个聊天机器人吧!
  6. python 管理windows客户端_在远程windows客户端上执行python脚本
  7. 深入分布式缓存之EVCache探秘开局篇(文末赠书)
  8. linux下的shell多线程用法,shell多线程操作
  9. 用SegNet进行室内布局语义分割
  10. Python3 OpenCV
  11. 微信小程序引入echarts图表
  12. 业务流程图是什么?怎么画?
  13. 从三点共线到四点共面
  14. 用SQL语句向数据库添加date类型字段
  15. SSR存在时无法打开Microsoft Store等UWP应用
  16. java自行车怎么调档_这也许是史上最详细的自行车变速调节攻略了!
  17. 社群运营:美容店怎么做社群引流?分享5个到店提高转化率的方法!
  18. Android 对Canvas的translate方法总结
  19. 从产品经理人的角度规划项目:排课系统
  20. linux服务器,卸载tensorflow CPU 安装PGU版

热门文章

  1. 中秋佳节,基于华为云AI制作属于自己的月亮!
  2. J2ME是闯进电信丛林的兔子?
  3. 淘宝怎么一键上架下架商品的?
  4. java基础英语单词汇总,JAVA基础英语单词表(下)
  5. 不懂copy与deepcopy的区别?这一篇就够了
  6. .NET Core WebApi中实现数据库的操作(之SqlServer)
  7. 包你学会怎么在oracle中建立索引
  8. 视频教程-企业微信支付JAVA版_向员工收款-微信开发
  9. Mysql连接超时(HikariPool)
  10. D - Pagodas (找规律)