TA的每日心情 | 开心 2021-3-12 23:18 |
---|
签到天数: 2 天 [LV.1]初来乍到
|
使用jdk自带函数Integer.toBinaryString() 函数不能完整显示整型数据的二进制格式。例如Integer.toBinaryString(2),运行结果为:10,但真正的完整而进制格式为:00000000000000000000000000000010。
- import java.util.Scanner;
- public class IntToFullBinaryString{
- /**
- * 打印整型数值的完整二进制格式
- * @param x
- * @return
- */
- private static String toFullBinaryString(int x) {
- int[] buffer = new int[Integer.SIZE];
- for (int i = (Integer.SIZE - 1); i >= 0; i--) {
- buffer[i] = x >> i & 1;
- }
- String s = "";
- for (int j = (Integer.SIZE - 1); j >= 0; j--) {
- s = s + buffer[j];
- }
- return s;
- }
- public static void main(String args[]){
- int n=2;
- Scanner in=new Scanner(System.in);
- while(n!=0){
- n=in.nextInt();
- System.out.println(toFullBinaryString(n));
- System.out.println("api="+Integer.toBinaryString(n));
- }
- }
- }
复制代码 运行结果:
D:java>java IntToFullBinaryString
1
00000000000000000000000000000001
api=1
2
00000000000000000000000000000010
api=10
3
00000000000000000000000000000011
api=11
5667889
00000000010101100111110000110001
api=10101100111110000110001
0
00000000000000000000000000000000
api=0 D:java>
|
|