资讯专栏INFORMATION COLUMN

位运算符 java

dreamGong / 2065人阅读

摘要:反码正数的反码就是本身。负数的反码是二进制保留符号位。作用是对运算符两側以二进制表达的操作符按位分别进行与运算。则完整的运算式为无符号右移一位。

java中对二进制的操作符 &、|、^、~、>>、<<、>>>几个位操作符。不管是初始值是依照何种进制,都会换算成二进制进行位操作。接下来对这几种操作符进行一下简单的解说。

先说一下基础知识:

原码 就是当前数字的二进制表现形式,如-1的原码是1000 0001。

反码 正数的反码就是本身。负数的反码是二进制保留符号位。剩余位取反,比如-1的反码是1111 1110;

补码 正数的反码、补码、原码都是一样的,负数的补码是在其反码的基础上+1,比如-1的补码是1111 1111。

&:

作用是对运算符两側以二进制表达的操作符按位分别进行"与"运算。而这一运算是以数中同样的位(bit)为单位的。
操作的规则是:仅当两个操作数都为1时。输出结果才为1。否则为0,示例如以下:

12 的二进制为 1001

5 的二进制为 0101

则 12 & 5 的二进制为 0100,则完整的运算式为 12 & 5 = 4; 

|:

作用是对运算符两側以二进制表达的操作符按位分别进行"或"运算。而这一运算是以数中同样的位(bit)为单位的。

操作的规则是:仅当两个操作数都为0时,输出的结果才为0。否则为1,示例如以下:

12 的二进制为 1100

5  的二进制为 0101

则 12 | 5 的二进制为 1101。则完整的运算式为 12 & 5 = 13; 

^:

作用是对运算符两側以二进制表达的操作数按位分别进行"异或"运算,而这一运算是以数中同样的位(bit)为单位的。

异或运算操作的规则是:仅当两个操作数不同一时候。对应的

输出结果才为1,否则为0,示比例如以下:

12 的二进制为 1100

5  的二进制为 0101

则 12 | 5 的二进制为 1001。则完整的运算式为 12 & 5 = 9; 

~:

"取反"运算符~的作用是将各位数字取反:全部的0置为1,1置为0,示例如以下:

12 的二进制为 1100

进行取反操作为 10000000 00000000 00000000 00001101

则完整的运算式为
~12 = -13

<<:

左移就是把一个数的全部位数都向左移动若干位,示例如以下:

12 的二进制为 1100

则 12 << 1 的二进制为 11000, 则完整的运算式为 12 << 1 = 24;

>>:

右移就是把一个数的全部位数都向右移动若干位,示例如以下:

12 的二进制为 1100

则 12 >> 1 的二进制为 0110。 则完整的运算式为 12 >> 1 = 6;

>>>:

无符号右移一位。不足的补0。 示例如以下:

12 的二进制为 1100

则 12 >> >1 的二进制为 0110, 则完整的运算式为 12 >> 1 = 6;

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/71062.html

相关文章

  • Java算符浅析

    摘要:在学习源码中,发现有大量使用位运算符,这样做的目的是为了节约内存开销和加快计算效率。位运算符,这个位代表这什么位二进制位简称位,是二进制记数系统中表示小于的整数的符号,一般用或表示,是具有相等概率的两种状态中的一种。 在学习源码中,发现有大量使用位运算符,这样做的目的是为了节约内存开销和加快计算效率。 位运算符,这个位代表这什么? 位:二进制位简称位,是二进制记数系统中表示小于2的整数...

    zhaofeihao 评论0 收藏0
  • Java 数据类型和算符

    摘要:基本数据类型布尔类型或,占用位。强制类型转换强制类型转换的语法格式是,强制类型转换的运算符是圆括号。无符号右移运算符。对于低于类型如和的操作数总是先自动类型转换为类型后再移位。 注释 单行注释//......多行注释/ .../文档注释/*.../ 文档注释位于注释内容上一行 标识符和关键字 分隔符 分号:作为语句的分隔,每个Java语句必须使用分号作为结尾。花括号:定义一个代码...

    archieyang 评论0 收藏0
  • Java编程基础02——Java语言基础

    摘要:所以就想把一大串缩短点,将二进制中的三位用一位表示。以可以大写也可以小写开头版本可以表示二进制了八进制的数据表现形式由组成。结果把系数基数的权次幂相加即可。因为语言采用的是码来编码的。 1_(常量的概述和使用)* A:什么是常量(constant) 在程序执行的过程中其值不可以发生改变 B:Java中常量的分类 字面值常量 自定义常量(面向对象部分讲) C:字面值常量的...

    pakolagij 评论0 收藏0
  • 轻松搞定Java运算

    摘要:阅读原文轻松搞定位运算我们日常开发中为运算使用的并不多,但如果能巧妙的使用位运算可以减少运行开销和优化算法,通过的源码可知,如。按位非操作十进制二进制操作数后结果总结对每位进行取反。 阅读原文:轻松搞定Java位运算 我们日常开发中为运算使用的并不多,但如果能巧妙的使用位运算可以减少运行开销和优化算法,通过Java的源码可知,如HashMap。 单位换算 bit:位 一个二进制数据...

    wenhai.he 评论0 收藏0
  • java学习笔记-运算

    摘要:位运算符位运算符与逻辑运算符类似,但是位运算符是对每一位进行计算。上面说到的按位取反加,就可以写成移位运算符右移与无符号右移相似,是将整数所有的位向右移动位,抛弃个低位。空出来的低位用的最高位值补全。 定点数据再计算机中的表示方法 例如一个整数类型(int)的数据在内存中占用了32位。通俗的讲就是在内存中挖了32个坑,每一个坑里可以放一个0或者1. 00000000 11111111 ...

    galaxy_robot 评论0 收藏0

发表评论

0条评论

dreamGong

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<