提交 e6e38d57 编写于 作者: GreyZeng's avatar GreyZeng

print 32 bit

上级 6ced568a
......@@ -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));
}
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册