Java进制以及位运算


package com.yt.test.test;

public class Test {

    public static void main(String[] args) {
        // 十六进制
        int a16 = 0x0F;
        int b16 = 0x01 + a16;
        System.out.println(a16);
        System.out.println(b16);

        System.out.println("------------------------");

        // 八进制
        int a8 = 011;
        int b8 = 011 + a8;
        System.out.println(a8);
        System.out.println(b8);

        System.out.println("------------------------");

        // 二进制
        int a2 = 0b11;
        int b2 = 0b11 + a2;
        System.out.println(a2);
        System.out.println(b2);

        System.out.println("------------------------");

        int i = 17;
        String num10 = "";
        // 十进制转成十六进制:
        num10 = Integer.toHexString(i);
        System.out.println(num10);
        // 十进制转成八进制
        num10 = Integer.toOctalString(Integer.MAX_VALUE);
        System.out.println(num10);
        // 十进制转成二进制
        num10 = Integer.toBinaryString(Integer.MAX_VALUE);
        System.out.println(num10);

        System.out.println("------------------------");

        int j = 0;
        // 十六进制转成十进制
        j = Integer.valueOf("FFFF", 16);
        System.out.println(j);
        // 八进制转成十进制
        j = Integer.valueOf("676", 8);
        System.out.println(j);
        // 二进制转十进制
        j = Integer.valueOf("0101", 2);
        System.out.println(j);

        System.out.println("------------------------");

        // “按位与(&)”:A & B = 00111100 & 00001101= 00001100 (十进制:12)
        int a = 0b00111100 & 0b00001101;
        System.out.println(a);

        // “按位或(|)”:A | B = 00111100 | 00001101= 00111101 (十进制:61)
        int b = 0b00111100 | 0b00001101;
        System.out.println(b);

        // “按位异或(^)”:A ^ B = 00111100 ^ 00001101= 00110001 (十进制:49)
        int c = 0b00111100 ^ 0b00001101;
        System.out.println(c);

        // “按位补(~)”: ~ A = ~00111100 = 11000011 = - 00111100 (十进制:-60)
        int d = ~0b00111100;
        System.out.println(d);

        // “按位左移(<<)”:A << 2 = 00111100 << 2 = 11110000 (十进制:240)
        int e = 60 << 2;
        System.out.println(e);
    }
}

posted on 2017-07-28 14:35  疯狂的妞妞  阅读(206)  评论(0编辑  收藏  举报

导航