Java - 输出二进制数字

标签: MystraJava输出二进制数
3219人阅读 评论(0) 收藏 举报
分类:

输出二进制数字, 标准库函数: Integer.toBinaryString().
简易实现方式:

//: Main.java

/**
 * 二进制数打印
 */

class MyClass {
    // 替代Integer.toBinaryString()
    public static String toBinaryString(int num) {
        if (num == 0) return ""+0;
        String result = "";
        // 左面0的个数
        int n = Integer.numberOfLeadingZeros(num);
        num <<= n;
        for (int i=0; i<32-n; ++i) {
            int x = (Integer.numberOfLeadingZeros(num) == 0)?1:0;
            result += x;
            num <<= 1;
        }
        return result;
    }
}

class Main {
    public static void main(String[] args) {
        int i1 = Integer.valueOf("10101010", 2);
        int i2 = Integer.valueOf("10101011",2);
        System.out.println("i1 = " + i1 + ", (2)" + MyClass.toBinaryString(i1));
        System.out.println("i2 = " + i2 + ", (2)" + MyClass.toBinaryString(i2));
        System.out.println("i1|i2 = " + (i1|i2) + ", (2)" + MyClass.toBinaryString((i1 | i2)));
        System.out.println("i1^i2 = " + (i1 ^ i2) + ", (2)" + MyClass.toBinaryString((i1 ^ i2)));
        System.out.println("i1&i2 = " + (i1&i2) + ", (2)" + MyClass.toBinaryString((i1 & i2)));
        System.out.println("~i1 = " + (~i1) + ", (2)" + MyClass.toBinaryString((~i1)));
    }
}
/**
 * Output:
 * i1 = 170, (2)10101010
 * i2 = 171, (2)10101011
 * i1|i2 = 171, (2)10101011
 * i1^i2 = 1, (2)1
 * i1&i2 = 170, (2)10101010
 * ~i1 = -171, (2)11111111111111111111111101010101
 *///:~

娱乐

3
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:2502641次
    • 积分:32578
    • 等级:
    • 排名:第152名
    • 原创:709篇
    • 转载:1篇
    • 译文:0篇
    • 评论:385条
    自我简介

    本人代码娴熟,涉猎广泛。

    目前任职于春雨医生的大数据部,数据挖掘工程师。

    曾经任职于春雨医生的移动端部,高级Android开发工程师。

    欢迎Follow我的GitHub:.

    https://github.com/SpikeKing

    文章分类
    最新评论