打印一个数字的32位 的状态

main
lsrong 2 years ago
parent 7efa5a9a28
commit 285a5d6d95

6
.gitignore vendored

@ -23,4 +23,10 @@
# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*
replay_pid*
**/mvnw
**/mvnw.cmd
**/.gitignore
**/.mvn
**/target
.idea

@ -0,0 +1,53 @@
public class Code01_PrintBinary {
// << 左移运算-无论什么数字都是一样的操作逻辑二进制整体左移最左边用0来填充
/**
* 32
* @param num
*/
public static void printBinary(int num){
for(int i = 31; i >= 0; i--){
// System.out.print((num & (1 << i)) == 0 ?"0":"1");
int a = num & (1 << i); // 1 左移 i 位 10**0 然后在和num 与 位运算
System.out.print(a == 0 ? "0" : "1");
}
System.out.println();
}
public static void main(String[] args){
int num = 321312;
//printBinary(num);
// 有符号 无符号
num = Integer.MAX_VALUE;
// printBinary(num);
// printBinary(-1);
int a = Integer.MIN_VALUE; // 负数: 第一位为符号位后面取反加1
// printBinary(a);
// 取反
// int b = 12345;
// int c = ~b;
// printBinary(b);
// printBinary(c);
// printBinary(-5);
// 负数最小值的数值并正数的大1 -2^32 ~ 2^32-1(忽略符号位)
System.out.println(Integer.MIN_VALUE);
System.out.println(Integer.MAX_VALUE);
int c = -5;
int d =-c;
d = (~c + 1);
System.out.println(c);
System.out.println(d);
int e = Integer.MIN_VALUE; // 负数最小为 本身, 取反加1 二进制就是本身
printBinary(e);
printBinary(-e);
}
}
Loading…
Cancel
Save