题目:输出整数的32位二进制表示
方法:位运算,&、<<
代码:
import java.util.*;
import java.util.stream.Collectors;
public class Main {
public static void print(int a){
//输出32位二进制表示
System.out.print(a+"的二进制表示:");
for(int i=31;i>-1;i--)
System.out.print((a&(1<<i))==0?0:1);
System.out.println();
}
public static void main(String[] args) {
int a=2147483647;
int b=0;
int c=~a+1;
int d=Integer.MIN_VALUE;
int e=Integer.MAX_VALUE;
int f=1,g=-1;
print(a);
print(a+1);
print(b);
print(c);
print(c-1);
print(d);
print(e);
print(f);
print(g);
}
}
运行结果:
2147483647的二进制表示:01111111111111111111111111111111
-2147483648的二进制表示:10000000000000000000000000000000
0的二进制表示:00000000000000000000000000000000
-2147483647的二进制表示:10000000000000000000000000000001
-2147483648的二进制表示:10000000000000000000000000000000
-2147483648的二进制表示:10000000000000000000000000000000
2147483647的二进制表示:01111111111111111111111111111111
1的二进制表示:00000000000000000000000000000001
-1的二进制表示:11111111111111111111111111111111
参考链接: