问题描述
打印一个int型的数的32位二进制形式
关键词:位运算;二进制形式
代码实现
public class PrintBinaryString {
/**
* 打印一个int型的数的32位二进制形式
* @param num
*/
public static void printBinaryString(int num){
for(int i=31; i>=0; i--){
System.out.print((num & (1<<i)) == 0 ? "0" : "1");
}
System.out.println();
}
public static void main(String[] args) {
//32位 有符号整型,第一位是符号位
int num = -1;
printBinaryString(num);
//对比:以下方法打印出来的二进制省略了左边开头的所有0
System.out.println(Integer.toBinaryString(Integer.MIN_VALUE));
System.out.println(Integer.toBinaryString(Integer.MAX_VALUE));
}
}