移位运算符
来源:互联网 发布:oracle数据库实用教程 编辑:程序博客网 时间:2024/04/25 21:14
<< 1 = * 2
<< 2 = * 4
<< 3 = * 8
<< 4 = * 16
...
>> 1 = / 2
>> 2 = / 4
>> 3 = / 8
>> 4 = / 16
...
移位运算符包括:
“>> 右移”;“<< 左移”;“>>> 无符号右移”
例子:
-5>>3=-1
1111 1111 1111 1111 1111 1111 1111 1011
1111 1111 1111 1111 1111 1111 1111 1111
其结果与 Math.floor((double)-5/(2*2*2)) 完全相同。
-5<<3=-40
1111 1111 1111 1111 1111 1111 1111 1011
1111 1111 1111 1111 1111 1111 1101 1000
其结果与 -5*2*2*2 完全相同。
5>>3=0
0000 0000 0000 0000 0000 0000 0000 0101
0000 0000 0000 0000 0000 0000 0000 0000
其结果与 5/(2*2*2) 完全相同。
5<<3=40
0000 0000 0000 0000 0000 0000 0000 0101
0000 0000 0000 0000 0000 0000 0010 1000
其结果与 5*2*2*2 完全相同。
-5>>>3=536870911
1111 1111 1111 1111 1111 1111 1111 1011
0001 1111 1111 1111 1111 1111 1111 1111
无论正数、负数,它们的右移、左移、无符号右移 32 位都是其本身,比如 -5<<32=-5、-5>>32=-5、-5>>>32=-5。
一个有趣的现象是,把 1 左移 31 位再右移 31 位,其结果为 -1。
0000 0000 0000 0000 0000 0000 0000 0001
1000 0000 0000 0000 0000 0000 0000 0000
1111 1111 1111 1111 1111 1111 1111 1111
一般在 要乘以 或除以 2的 次方时 使用。
附: 按位与运算符 &
按位与运算通常用来对某些位清0或保留某些位。例如把a 的高八位清 0 , 保留低八位, 可作 a&255 运算 ( 255 的二进制数为0000000011111111)。
- 移位运算符符
- 移位运算符
- 移位运算符
- JAVA移位运算符
- JAVA移位运算符
- java 移位运算符
- 移位运算符
- JAVA移位运算符
- JAVA移位运算符
- 移位运算符
- JAVA移位运算符
- 二进制移位运算符
- PHP 移位运算符
- JAVA移位运算符
- JAVA移位运算符
- java移位运算符
- C++移位运算符
- Java移位运算符
- 我奋斗了十八年不是为了和你一起喝杯咖啡
- 让记录成为一种习惯
- 使用CUnit写测试程序的一般步骤
- Linux网络编程
- SQL试题以及答案
- 移位运算符
- AS实用的StringBuffer
- 向量叉积计算法
- telnetlib 中各种 read 函数的意义
- vnc 配置(笔记)
- ls参数说明
- Zappos十诫(核心价值观,Core Value)
- Linux 操作收集
- if you needed an umbrella