Chuyển số thập phân (cơ số 10) sang thập lục phân (cơ số 16, chữ số 0-9, A-F).
Cách làm: Chia liên tiếp cho 16, lấy phần dư. Phần dư 0-9 giữ nguyên, 10-15 đổi thành A-F. Ghi các phần dư theo thứ tự ngược lại.
Ví dụ
Input: 6789 6789 / 16 = 424 dư 5 424 / 16 = 26 dư 8 26 / 16 = 1 dư 10 (A) 1 / 16 = 0 dư 1 Kết quả: 1A85
Thuật toán
Bắt đầu
Bước 1: Hàm convert(int num)
char arr[100], i = 0
Khi num != 0:
temp = num % 16
Nếu temp < 10: arr[i] = temp + '0'
Ngược lại: arr[i] = temp + 55 ('A'=65)
i++, num /= 16
In arr từ i-1 xuống 0
Bước 2: main()
num = 6789
Gọi convert(num)
Kết thúc
Ví dụ code
#include <iostream>
using namespace std;
void convert(int num) {
char arr[100];
int i = 0;
while (num != 0) {
int temp = num % 16;
if (temp < 10) arr[i] = temp + 48;
else arr[i] = temp + 55;
i++;
num /= 16;
}
for (int j = i - 1; j >= 0; j--)
cout << arr[j];
}
int main() {
int num = 6789;
cout << num << " chuyen sang hex: ";
convert(num);
return 0;
}
Kết quả
6789 chuyen sang hex: 1A85