diff --git a/src/main/java/resolved/bit/Code_PrintBinary.java b/src/main/java/resolved/bit/Code_PrintBinary.java index fac62b839184e51de134afccd7cc326805af00d7..1ea55dce950793fd2b798f3974106d26fed8f907 100644 --- a/src/main/java/resolved/bit/Code_PrintBinary.java +++ b/src/main/java/resolved/bit/Code_PrintBinary.java @@ -6,37 +6,35 @@ package resolved.bit; // 2. 除去最高位,其他位数取反以后,再加1 public class Code_PrintBinary { // 打印一个32位整数的二进制形式 - public static String printBinary(int n) { + public static String getBinary(int num) { StringBuilder sb = new StringBuilder(); for (int i = 31; i >= 0; i--) { - sb.append((n & (1 << i)) == 0 ? "0" : "1"); + sb.append(((1 << i) & num) == 0 ? "0" : "1"); } - // System.out.println(sb); return sb.toString(); } - public static void main(String[] args) { int num = 0b10001010_11101010_10001000_11101010; System.out.println("要处理的数据是:"); System.out.println("10001010111010101000100011101010"); System.out.println("打印原始数的二进制:"); - String printNum = printBinary(num); - System.out.println(printBinary(num)); + String printNum = getBinary(num); + System.out.println(getBinary(num)); System.out.println("原始内容和打印内容是否一致(如果一致则正确)" + printNum.equals(Integer.toBinaryString(num))); System.out.println("左移一位:"); - printBinary(num << 1); + System.out.println(getBinary(num << 1)); System.out.println(">> 表示有符号右移一位:"); - printBinary(num >> 1); + System.out.println(getBinary(num >> 1)); System.out.println(">>> 表示带着符号右移一位:"); - printBinary(num >>> 1); + System.out.println(getBinary(num >>> 1)); System.out.println("系统最大值的二进制:"); - printBinary(Integer.MAX_VALUE); + System.out.println(getBinary(Integer.MAX_VALUE)); System.out.println("系统最小值的二进制:"); - printBinary(Integer.MIN_VALUE); + System.out.println(getBinary(Integer.MIN_VALUE)); System.out.println("负的系统最小值的二进制(还是本身):"); - printBinary(-Integer.MIN_VALUE); + System.out.println(getBinary(-Integer.MIN_VALUE)); System.out.println("取反:"); - printBinary(~num); + System.out.println(getBinary(~num)); } }