位运算符

<<左移

先说左移运算符,它的符号表示是<<

举个例子,先定义一个int类型的数,十进制的value = 733183670,转换成二进制在计算机中的表示如下(int类型占4个字节):

value << 1,代表左移1位,运算过程如下:

那么如果往左移8位呢,value << 8

左移8位后变成了十进制的值为:-1283541504,移动8位后,由于首位变成了1,也就变成了负数,在使用左移运算符时要考虑变成负数的情况。

>>右移

再来说说右移运算符,它的符号是>>

依旧设定value = 733183670,向右移8位,运算过程如下:

和左移一样,缺失位补0,但是需要注意负数的右移

设定value = -733183670,需要注意负数在计算机中的存储形式是其同值正数的补码

先说个分支:原码、反码、补码

int类型的‍+1的原码是:

int类型的+1的反码是(原码各位取反)

int类型的+1的补码是(反码末位加1)

普及了补码的知识,那么接着说value = -733183670,如果它往右移8位呢?

>>>无符号右移

还有一个无符号右移运算符>>>

无符号右移运算符>>>和右移运算符>>是一样的,只不过右移时左边是补上符号位,而无符号右移运算符是补上0

&与运算

&它既是一个逻辑运算符,也是一个位运算符,那么它在位运算中如何表示呢?

以3&5运算为例,先将3和5转化为二进制数,具体计算如下:

结论:对应位同为1时,才为1,否则全为0(对应位只要有0,全为0,否则为1)。

另外:也可以把1理解为true,把0理解为false, true和false进行与&运算时,必须同为true时结果才为true。

|或运算

和与运算逻辑相似,不同的是对应为数字的判断:

总结:对应位只要有1时,即为1,否则全为0(对应位只有全是0时,结果才是0,否则为1)。

另外:也可以把1理解为true,把0理解为false, true和false进行或|运算时,只要有true,结果即为true。

~非运算

以~3为例:

总结:对每位进行取反。

^异或运算

以3^5为例:

总结:只要对应为不同即为1。

三元运算符

三元运算符有一个标准语法a?b:c

用文字解释就是a为布尔表达式,b和c为同一类型的表达式或值,当a=true时,整个表达式的值为b的值,否则为c的值。

注意事项:

  • 必须同时保证表达式b和表达式c都符合被赋值变量数据类型的要求。
  • 三元运算符的结果必须被使用。

位运算符取反_Java常见的运算符——位运算相关推荐

  1. java位运算符取反_Java运算符之位运算符

    位运算符 尹成课程资料及演示(免费)(文末有资料链接) 位运算符是针对二进制数的每一位进行运算的符号,它是专门针对数字0和1进行操作的.接下来通过一张表来展示Java中的位运算符及其用法,如表1所示. ...

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

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

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

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

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

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

  5. 在位运算中_Java常见的运算符(下)

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

  6. java int相除向上取整_Java工程师(4).运算符

    什么是运算符 运算符可以对两个变量的值执行运算,运算过程由CPU完成. 都有哪几类运算符 Java中的运算符主要包含以下几类: 算术运算符 赋值运算符 关系运算符 逻辑运算符 算术运算符 算术运算符用 ...

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

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

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

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

  9. c# 整数取反_按位取反运算符的使用

    按位取反运算符的使用 按位取反运算符是按照二进制的每一位取反,比如byte类型,~0的结果就是255. 该功能可以在mask中做一些反转操作 如下代码,a存放了2,4,8三个值.用按位取反'~'运算符 ...

最新文章

  1. 【OpenCV 4开发详解】图像膨胀
  2. oracle sql命令行中上下左右使用
  3. 基于zookeeper实现系统配置中心
  4. 故障解决:error while loading shared libraries: libncurses.so.5
  5. 赛事丨出道题就能赢万元奖金?华录杯大赛告诉你,是真的
  6. spring cloud微服务分布式云架构(四)-断路器(Hystrix)
  7. Github上的热门iOS开源项目:AFNetworking、MagicalRecord、BlocksKit以及XVim
  8. ROS入门笔记(六): ROS系统架构
  9. java怎么让遮罩层下面滚动_vue项目弹出层后禁止body底层的滚动事件
  10. pandas object格式转float64格式
  11. 10 JavaScript函数
  12. 程矢Axure夜话:Axure手机原型视频教程之图形解锁
  13. 贾跃亭个人破产内幕曝光 差一点获得中东土豪投资
  14. @property基本概念
  15. Cmd 移动文件夹及文件
  16. 编程比赛项目和时间汇总
  17. Android调用第三方App Activity
  18. 贪吃的猴子c语言的思路,贪吃的猴子(贪吃的猴子?C语言)
  19. JQuery获取当前元素本身
  20. 【定制开发】【M5】Python爬虫 - 获取【一品威客】最新发布需求,并实时通知用户

热门文章

  1. 笔记本CPU和显卡的选择标准
  2. Python天天美味(23) - enumerate遍历数组
  3. 算法高级(33)-拓扑排序-maven依赖关系的确定
  4. mysql常见错误及解决办法_mysql常见错误代码、原因及处理办法
  5. 《JSON笔记之三》---postman中传入json串
  6. mongodb数据库扩展名_MongoDB权威指南
  7. Android应用第一次安装成功点击“打开”后Home键切出应用后再点击桌面图标返回导致应用重启问题...
  8. ubuntu14.04 安装pidgin-lwqq
  9. Ubuntu 14.04 安装 MongoDB
  10. /etc/securetty文件