javaSE基础_位运算及位移运算
2011-08-13 10:59
381 查看
源码:
运行结果:
~2=-3
2&3=2
2|3=3
3^2=1
~-5=4
-2|-3=-1
1>>2=0
1<<2=4
-1>>2=-1
-2<<3=-16
3>>>1=1
总结:
1.java在计算机的运算中,所有的运算都是以补码的形式进行运算的,特别注意负数的位运算
2.算术左移运算本质是:这个数乘以2的n次方,如3<<2=3*4
3.在补码运算得到结果后,如果最高位为1,此时必须转化为原码
public static void main(String[] args) { //位运算 int a=~2;//按位取反:所有位都取反(包括符号位) 答案:-3 print("~2="+a); int b=2&3;//按位与:两位都为1时,结果为1 答案:2 print("2&3="+b); int c=2|3;//按位或 : 两位中只要有一个为1时,结果为1 答案:3 print("2|3="+c); int d=3^2;//按位异或:两位中一个为1,一个为0,结果为1 答案:1 print("3^2="+d); int e=~-5;//取反 答案:4 print("~-5="+e); int f=-2|-3; print("-2|-3="+f); //移位运算 int m1=1>>2;//算术右移:符号位不变,高位用符号位补 print("1>>2="+m1); int n1=1<<2;//算术左移:符号位不变,低位补0 print("1<<2="+n1); int t1=-1>>2; print("-1>>2="+t1); int test01=-2<<3; print("-2<<3="+test01); int x1=3>>>1;//逻辑右移:低位溢出,高位补0 print("3>>>1="+x1); } public static void print(Object o){ System.out.println(o); }
运行结果:
~2=-3
2&3=2
2|3=3
3^2=1
~-5=4
-2|-3=-1
1>>2=0
1<<2=4
-1>>2=-1
-2<<3=-16
3>>>1=1
总结:
1.java在计算机的运算中,所有的运算都是以补码的形式进行运算的,特别注意负数的位运算
2.算术左移运算本质是:这个数乘以2的n次方,如3<<2=3*4
3.在补码运算得到结果后,如果最高位为1,此时必须转化为原码
相关文章推荐
- (5)java语言基础(注释,关键字,标识符,常变量,类型转换,转义字符、位运算和一些注意的运算)
- java基础--位运算,条件运算
- 【基础算法】位运算-基本运算
- Java中的位运算、位移运算
- java基础之运算(位运算)
- java 位运算与运算基础
- 二进制、位运算、位移运算
- 【基础算法】位运算-基本运算
- JavaSE基础:反射机制
- Python基础04 运算
- javaSE基础24之泛型
- JavaSE基础学习笔记-继承
- JavaSE----基础语法(运算符)
- JavaSE复习之二 基础知识:面向对象
- javase基础入门复习笔记
- [总结]为了效率,应该把基础运算交给数据库还是程序?
- 二进制,位运算,移位运算
- 运算放大器的基础原理
- [转载] 用位运算实现加法运算(CPU内部实现)