java按位运算符(&、|、~、^) 移位操作符(>> << >>> )
来源:互联网 发布:知乎匿名回答在哪看 编辑:程序博客网 时间:2024/06/05 21:36
java按位运算符(操作符)
最近在看源码时,发现一些java基础有些记不清了。今天来回忆,整理一下。
按位运算符是来操作整数基本数据类型中的单个“比特”(bir),即二进制位,位运算符会对两个参数中对应的位执行布尔代数运算,并最终生成一个结果。
位运算符来源于C语言面向底层的操作,在这种操作中经常需要直接操作硬件,设置硬件寄存器内的二进制位。Java的设计初衷是为了嵌入电视机机顶盒,所以种面向底层的操作仍被保留了下来。
1、“与”、“位与”(&)
按位“与”操作符,如果两个数的二进制,相同位数都是1,则该位结果是1,否则是0.
例1 5&4
5的二进制是 0000 0000 0000 0101
4的二进制是 0000 0000 0000 0100
则结果是 0000 0000 0000 0100 转为十进制是4。
2、“或”、“位或”(|)
按位“或”操作符,如果两个数的二进制,相同位数有一个是1,则该位结果是1,否则是0
例2 5 | 4
5的二进制是 0000 0000 0000 0101
4的二进制是 0000 0000 0000 0100
则结果是 0000 0000 0000 0101 转为十进制是5。
3、“异或、“位异或”(^)
按位“异或”操作符,如果两个数的二进制,相同位数只有一个是1,则该位结果是1,否则是0
例3 5 ^ 4
5的二进制是 0000 0000 0000 0101
4的二进制是 0000 0000 0000 0100
则结果是 0000 0000 0000 0001 转为十进制是1
4、“非”、“位非”(~)也称为取反操作符
按位“非”操作符,属于一元操作符,只对一个操作数进行操作,(其他按位操作符是二元操作符)。按位“非”生成与输入位相反的值,——若输入0,则输出1,若输入1,则输出0。
例4 ~5
5的二进制是 0000 0000 0000 0101
则~5是 1111 1111 1111 1010 转为十进制是 -6。
这里出现负数,强行插入一波^_^。
电脑的的世界中只有0和1,那么负数怎么表示呢?
二进制的正负是从高位看,最高位如果1则是负数,如果是0则是正数。
如果负数单纯是把最高位变为1的话,在运算中会出现不是我们想要的值,所以引入了:原码,反码,补码。正数的原码,反码,补码都一样,负数的反码是对除了符号位(最高位)对原码取反,补码是对反码+1
负数的二进制转化,计算机计算是用的补码
1、首先取出这个数的原码的二进制,
2、然后再求出反码
3、最后求出补码
例5 -5
-5的原码是 1000 0000 0000 0101
求出反码的是 1111 1111 1111 1010
求出补码是 1111 1111 1111 1011
Java移位操作符
- java按位运算符(&、|、~、^) 移位操作符(>> << >>> )
- java 移位 位运算符 >>,<<,>>>
- Java中的位运算符、移位运算
- Java中的位运算符、移位运算
- java位运算、移位运算符
- Java 逻辑运算符、按位运算符、移位运算符
- 位运算、移位运算符
- java 按位操作符和移位操作符
- Java按位操作符、移位操作符
- Java移位操作、位运算详解
- 按位左右移位运算符
- 按位向右移位运算符
- Java 位运算符和移位运算符
- Java位运算符与移位运算符
- java基础--数组Arrays、递归、移位运算、位运算符
- Java 移位操作>>,<<,>>> 位逻辑运算符 &, |,~,^
- 《Java编程思想》学习——按位运算符、移位运算符
- JAVA移位运算符
- 【云星数据---Apache Flink实战系列(精品版)】:Apache Flink高级特性与高级应用005-Flink的作业调度情况002
- JSON 数据格式
- Python-dict和set(学习笔记2)
- 用栈求解汉诺塔问题(每日一道算法题)
- MySql 时间类型转为字符串
- java按位运算符(&、|、~、^) 移位操作符(>> << >>> )
- Flum入门必备知识
- 变量的存储类别小总结
- 20.当数据量超过一万后天接收不到前台传递过来的数据
- phpcms v9 目录式伪静态
- Android 如何使用小的Ratingbar
- Linux基础
- 使用Python3计算HTTP的摘要Response值
- 随机函数的应用