Nội dung chính
Bài toán
1. Chuyển đổi số nguyên N từ hệ cơ số 10 sang hệ cơ số B bất kỳ.
2. Chuyển đổi hệ cơ số B sang hệ cơ số 10 bất kỳ.
Cách chuyển đổi hệ cơ số
- Chuyển đối hệ cơ số 10 sang hệ cơ số B
- Chuyển đối hệ cơ số B sang hệ cơ số 10
Chuyển đối hệ cơ số 10 sang hệ cơ số B
Cách chuyển đổi số nguyên N từ hệ cơ số 10 sang hệ cơ số 2, trong ảnh dưới đây là ví dụ chuyển số 15 và số 6 sang hệ cơ số 2:
- Gán m = 15.
- Put phần dư m chia cho 2 (m % 2) vào stack.
- Gán m = m / 2.
- Nếu m > 0 quay lại bước 2.
- Đảo ngược lại stack ta được số cần tính.
Các hệ số khác chuyển đổi tương tự.
Ví dụ chuyển đối hệ cơ số 10 sang hệ cơ số B
Giả sử hệ cơ số cần chuyển là 2 <= B <= 16. Số đại điện cho hệ cơ số B > 10 là A = 10, B = 11, C = 12, D = 13, E = 14, F = 15.
Chúng ta tạo ra một chương trình như sau để chuyển đổi hệ cơ số trong java:
public class ConvertNumber {
public static final char CHAR_55 = 55;
/**
* main
*
* @author viettuts.vn
* @param args
*/
public static void main(String[] args) {
int n = 15;
System.out.println("So " + n + " trong he co so 2 = "
+ ConvertNumber.convertNumber(n, 2));
System.out.println("So " + n + " trong he co so 16 = "
+ ConvertNumber.convertNumber(n, 16));
}
/**
* chuyen doi so nguyen n sang he co so b
*
* @author viettuts.vn
* @param n: so nguyen
* @param b: he co so
* @return he co so b
*/
public static String convertNumber(int n, int b) {
if (n < 0 || b < 2 || b > 16 ) {
return "";
}
StringBuilder sb = new StringBuilder();
int m;
int remainder = n;
while (remainder > 0) {
if (b > 10) {
m = remainder % b;
if (m >= 10) {
sb.append((char) (CHAR_55 + m));
} else {
sb.append(m);
}
} else {
sb.append(remainder % b);
}
remainder = remainder / b;
}
return sb.reverse().toString();
}
}
Kết quả:
So 15 trong he co so 2 = 1111 So 15 trong he co so 16 = F
Chuyển đối hệ cơ số B sang hệ cơ số 10
Trong ảnh dưới đây là ví dụ về chuyển đổi hệ cơ số 2 sang hệ cơ số 10.
Các hệ cơ số khác tương tự.