Java 深入学习(15) —— 位操作符
来源:互联网 发布:怎么在淘宝搜同款 编辑:程序博客网 时间:2024/06/05 07:14
今天在看 JDK 源码中,关于 HashMap 的部分时,再次看到了
位运算符,之前因为很少用到,所以一直没有较为深入的了解过 位运算符(基本不懂那些运算符是干啥的),今天打算借着这次机会来稍稍深入的了解一下。
1 按位操作符
按位操作符有以下四种: &
按位与、 |
按位或、 ^
按位异或、 ~
按位非(按位非是一元操作符)
输出如下:
int a = 1;int b = 0;int c = 1;-------------------------------------按位 ‘与’(&) 操作符: a & b = 0按位 ‘与’(&) 操作符: a & c = 1-------------------------------------按位 ‘或’(|) 操作符: a | b = 1按位 ‘或’(|) 操作符: b | b = 0-------------------------------------按位 ‘异或’(^) 操作符: a ^ b = 1按位 ‘异或’(^) 操作符: a ^ c = 0-------------------------------------按位 ‘非’(~) 操作符: ~(0) = -1按位 ‘非’(~) 操作符: ~(1) = -2按位 ‘非’(~) 操作符: ~(-1) = 0按位 ‘非’(~) 操作符: ~(-2) = 1-------------------------------------Process finished with exit code 0
2 移位操作符
移位操作符有以下三种:
- 左移位运算符(<<),能按照操作符右侧指定的位数将操作符左边的操作数向左移动(在低位自动补 0
- “有符号”右移位操作符(>>),则按照操作符右侧指定的位数将操作符左边的操作数向右移动。“有符号”右移位操作符使用“符号扩展”:若符号为正,则在高位插入 0;若符号为负,则在高位插入 1。
- “无符号”右移位操作符(>>>),它使用“零扩展”:无论正负,都在高位插入 0
如果对 char、byte、short 类型的数值进行移位操作处理,那么在移位进行之前,他们会被转换为 int 类型,并且得到的结果也是一个 int 类型的值。 只有数值的右端的 低5位才有用。这样是为了防止移位超过 int 型值所具有的位数。
“移位”可与“等号”(<<=、>>=、>>>=)组合使用,操作符左边的值会先移动到操作符右边数值指定的位数,再将得到的结果赋给左边的变量。
Reference
1、《Java编程思想》
阅读全文
0 0
- Java 深入学习(15) —— 位操作符
- Java学习——位运算符
- java位操作符
- java 位操作符
- java-位操作符
- java 位操作符
- java位操作符
- java 位操作符
- Java位操作符
- 深入总结嵌入式位操作运算符
- C语言学习——位操作符
- 【golang 学习】知识点——位操作运算符&^
- 计算机基础——JAVA位操作
- java 位操作符小结(转)
- java 位运算(位操作)
- Java学习笔记——由位操作引出的字符编码
- Java 位运算符 深入理解
- 理解java位操作符
- 【已解决】3dsmax 自动保存的文件找不到
- JFinal获取properties配置文件
- Java是如何读取和写入浏览器Cookies的
- 【Scikit-Learn 中文文档】39 预测目标 (y) 的转换
- IE 不打开F12开发人员工具无法执行js问题
- Java 深入学习(15) —— 位操作符
- map,reduce,filter,flatmap
- Platform_device的platform_get_resource分析移植
- javascript中对象的属性的特性
- 预测地震,AI或许可以完成这一不可能的挑战
- spring boot 自动更新静态文件和后台代码
- ASA防火墙配置注意事项
- 补丁文件概述
- C# 异步编程