public class Print_PrintBinary {
//位运算打印
//其中最高位0表示负数,1表示正数
//1>>i i如果为1 100000000000000001
// 100000000000000000 就为0
//5>>1 1000000000000101
// 1000000000000010 就为2
// 5 100000...00101
//& 1 10000000000001
// 10000000000001
//就返回1 这可以找到该数哪位上是1并且打印
public static void print(int num) {
for (int i = 31; i >= 0; i--) {
System.out.println((num & (1 << i)) == 0 ? "0" : "1");
}
System.out.println();
}
public static void main(String[] args) {
//32位
System.out.println(1 >> 1);
System.out.println(5 >> 1);
// int num = 4;
// print(num);
// int test =1123123;
// print(test);
// print(1);
// print(-1);
// >>表示右移,如果该数为正,则高位补0,若为负数,则高位补1;
// >>>表示 无符号右移,也叫逻辑右移,即若该数为正,则高位补0,而若该数为负数,则右移后高位同样补0。
// int a = Integer.MIN_VALUE;
// int b = Integer.MAX_VALUE;
// print(a >> 1);
// System.out.println("____________________");
// print(a >>> 1);
// print(a);
// print(a | b);
// print(a&b);
// print(a^b);
// System.out.println(Integer.MIN_VALUE);
// System.out.println(Integer.MAX_VALUE);
// System.out.println(a);
// System.out.println(a >> 1);
// System.out.println(a >>> 1);
}
}
位运算学习
最新推荐文章于 2024-09-04 20:23:24 发布