天天看點

int轉換成二進制字元串

1.位移運作

     對于JAVA要想将整型轉換成二進制數可以直接使用包裝類的toBinaryString方法,如Integer.toBinaryString(int i),該方法利用的是位運算,JDK源碼如下:

public static String toBinaryString(int i) {
        return toUnsignedString(i, 1);
    }

    /**
     * Convert the integer to an unsigned number.
     */
    private static String toUnsignedString(int i, int shift) {
        char[] buf = new char[32];
        int charPos = 32;
        int radix = 1 << shift;
        int mask = radix - 1;
        do {
            buf[--charPos] = digits[i & mask];
            i >>>= shift;
        } while (i != 0);

        return new String(buf, charPos, (32 - charPos));
    }
           

2.除2算餘數。

  利用十進制轉二進制的過程,除以2,餘數代表該位置上的二進制數。

public String toBinaryString(int num){
        char[] buf = new char[32];
        int charPos = 32;
        while(num>=2) {
            buf[--charPos] = digits[num%2];
            num=num/2;
        }
        buf[--charPos]=digits[num%2];
        return new String(buf, charPos, (32 - charPos));
    }