Java二进制运算
来源:互联网 发布:广场舞软件下载 编辑:程序博客网 时间:2024/05/17 02:58
位运算:
左移位:<<
/* 00000001 << 1 = 00000010 */1 << 1 == 2 /* 00000001 << 3 = 00001000 */1 << 3 == 8
右移位:>> 是有符号操作符,使用最高位来表示数值的正负,负数的最高位永远为1。一个以1开头的二进制数移位后还将以1开头,一个以0开头的二进制树移位后还将以0开头。
/* 11111111 11111111 11111111 11110000 >> 4 = 11111111 11111111 11111111 11111111 */0xFFFFFFF0 >> 4 == 0xFFFFFFFF /* 00001111 11111111 11111111 11111111 >> 4 = 00000000 11111111 11111111 11111111 */0x0FFFFFFF >> 4 == 0x00FFFFFF
可以使用叫作“无符号右移”运算符的第三个操作符:>>>来实现以“0”填充的移位,这种移位会忽略符号位并总是用“0”来填充。最大的用途是迅速求2的幂。1向左移1位是2,移2位是4,相似的,向右移1位相当于是把该数除以2。
/* 10000000 00000000 00000000 00000000 >>> 1 = 01000000 00000000 00000000 00000000 */0x80000000 >>> 1 == 0x40000000/* 10000000 00000000 00000000 00000000 >> 1 = 11000000 00000000 00000000 00000000 */0x80000000 >> 1 == 0xC0000000
位运算操作符
以下是Java中四个常见的位操作符:
~ : 按位取反
& : 按位与(全1为1,有0则为0)
| : 按位或(有1为1,全0则为0)
^ : 按位异或(相同为0,不同为1)
比如:
1010 & 0101 == 00001100 & 0110 == 01001010 | 0101 == 11111100 | 0110 == 1110~1111 == 0000~0011 == 11001010 ^ 0101 == 11111100 ^ 0110 == 1010
你可以通过“或”运算,把一个二进制数上的指定位“设置”为1,并且不会影响到其他位。
10000001 | 00100000 = 10100001 /* 第五位设为1 */
10000001 | 1 << 5 = 10100001 /* 同样作用 */
00000000 | 1 << 2 | 1 << 5 = 00100100
0 0
- Java二进制运算
- java 二进制运算符操作
- java中二进制移位运算
- JAVA二进制.位运算.移位运算
- java二进制,运算符算法说明
- java运算符及二进制、八进制、十六进制
- Java位运算符及二进制常识
- JAVA的位运算与二进制转换
- 二进制运算
- 二进制运算
- 二进制运算
- 二进制运算
- 二进制运算
- 二进制运算
- 二进制运算
- 二进制运算
- Java学习_06_二进制、位运算&移位运算、集合框架
- 二进制运算 移位运算
- Solidworks 如何复制 基准面
- 数组中的splice()
- C语言使用
- CDR文字设计软件破解安装
- linux-7z
- Java二进制运算
- Java静态变量加载赋值问题
- ubuntu12.04的dns配置重启丢失问题
- 多线程-第二天
- LeetCode :【Easy】500. Keyboard Row
- Solidworks 如何画穿透点
- 三维扫描系统搭建
- 数据库基础知识(二)
- static变量和方法特征,private,public,protected作用范围