输出二进制数字, 标准库函数: 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
*///:~
版权声明:本文为u012515223原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。