/**
* @author superGenius
* java移位操作
*基础知识:java中类型的二进制表示
*
*一.int的是32位。long的是64位。
*如int i = 1;
* i的二进制原码表示为:
* 00000000000000000000000000000001
*long l = 1;
*l的二进制原码表示为: *0000000000000000000000000000000000000000000000000000000000000001
*
*二.原码——符号位为0表示正数,为1表示负数;
其余各位等同于真值的绝对值。
如:0000000000000010B=2,1000000000000010B=-2
反码——符号位的用法及正数的表示与“原码”一样;
负数的表示是在“原码”表示的基础上通过将符号位以外
的各位取反来获得的。
如:0000000000000010B=2,1111111111111101B=-2
补码——符号位的用法及正数的表示与“原码”一样;
负数的表示是在“反码”的基础上通过加1来获得的。
如:00000010B=2,11111110B=-2
三。常用的操作
& 与。 全1为1, 有0为0。 任何数与0与都等于0。
| 或。 有1为1, 全0为0。 任何数与0或都等于原值。
~ 非。 逐位取反
^ 异或。 相同为0,相异为1。 任何数与0异或都等于原值。
*/
public class Shifting {
public static void main(String[] args)
{
System.out.println(1<<1);//1左移一位从0001->00010,相当于乘以2 结果2
System.out.println(4>>2);//相当于除以4 结果1
System.out.println(1&2);//1->0001 2->0010 逐位比较 返回0000 结果0
System.out.println(1^1);//相同的返回0
System.out.println(1|2);//1->0001 2->0010 逐位比较 返回0011结果3
}
}
分享到:
2011-04-14 21:46
浏览 4741
评论