二进制移位运算符
来源:互联网 发布:linux 安装xz工具 编辑:程序博客网 时间:2024/03/29 15:08
移位运算符
左移:<<
带符号右移:>>
无符号:>>>
拿17来演示一下
正数的00010001
负数的11101111这个怎么来的?就是补码,最高位1就是负 后面那些取反+1就是补码!
左移<<
正数00|01000100,扔掉前面两个补上00
负数11|10111100,也是一样!!
带符号右移>>
正数00000100|01,扔掉右边两个补上00,因为带符号右移的,所以正的符号是0
负数11111011|11,扔掉右边两个补上11,负的符号是1
无符号右移>>>
正数00000100|01,扔掉后面两个,补上00
负数00111011|11,扔掉后面两个,补上00,因为无符号右移,所以补上0
例子=========================================================================
class yiwei
{
public static void main(string [] args)
int i=0xffffffff;// 十进制是-1,二进制是11111111,16进制就是0xffffffff
int c=i<<2;
system.out.println(i);
system.out.println(c);
}
打印出来的是-1和-4
运算一下,-1二进制是11111111
向左移就是 11|11111100 =-4
转正就是
111111100-1=111111011
取反 000000100
所以等于4!
如果i>>带符号右移
那么结果还是-1,因为11111111右移还是11111111|11
如果>>>不带符号右移!那么就是00111111|11
转16就是0x3F 转十进制就是63,无论什么二进制无符号右移,都是正的,除了0
得出一个结论 向右移一位,那么就等于除于2
向左移一位就等于乘于2…………
那么移两位就是4了!
- 二进制移位运算符
- 二进制运算 移位运算
- 二进制,位运算,移位运算
- JavaSE学习(9) 二进制、位运算符、移位运算符
- java_基础_二进制、位运算、移位运算符
- java中二进制移位运算
- 二进制的左右移位运算
- 不使用按位运算符,实现或"|",与"&",左移位"<<",右移位">>"二进制运算
- 详解移位运算符-二进制中1的个数
- java基础学习之二进制,移位运算符
- JAVA二进制.位运算.移位运算
- 数的二进制表示及移位运算
- 韩顺平 java 第二十讲 二进制、位运算、移位运算符
- 移位运算符符
- 移位运算符
- 移位运算符
- JAVA移位运算符
- JAVA移位运算符
- 请各位朋友多多指教,我是个菜鸟。
- 这个应该比较有前途。
- 为学
- 八种基本类型
- 二进制位运算符
- 二进制移位运算符
- 原码、反码、补码(转载)
- 面向对象
- static静态
- final
- 不同数据库常用操作的实现对比
- 类的继承
- 覆盖与super
- 类访问的说明符