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));
}