Được đưa ra với một số thập phân làm đầu vào, nhiệm vụ là chuyển đổi số thập phân đã cho thành số thập lục phân.
Số thập lục phân trong máy tính được biểu thị với cơ số 16 và số thập phân được biểu thị với cơ số 10 và được biểu thị bằng các giá trị 0 - 9 trong khi số thập lục phân có các chữ số bắt đầu từ 0 - 15 trong đó 10 được biểu thị là A, 11 là B, 12 là C, 13 như D, 14 như E và 15 như F.
Để chuyển đổi một số thập phân thành một số thập lục phân, hãy làm theo các bước đã cho -
- Trước hết chia số đã cho với giá trị cơ bản của số chuyển đổi, ví dụ:chia 6789 cho 16 bởi vì chúng ta cần chuyển 6789 thành một số thập lục phân có cơ số 16, sau đó lấy thương và lưu trữ nó. Nếu phần còn lại nằm trong khoảng từ 0-9, hãy lưu trữ chúng như cũ và nếu phần còn lại nằm trong khoảng 10-15 chuyển đổi chúng ở dạng ký tự là A - F
- Chia thương số thu được với giá trị cơ bản của số thập lục phân là 16 và tiếp tục lưu trữ các bit.
- Tiếp tục chuyển đúng sang các bit đã lưu trữ
- Lặp lại bước này cho đến khi phần còn lại không thể phân chia được
Dưới đây là biểu diễn bằng hình ảnh của việc chuyển đổi một số thập phân thành một số thập lục phân.
Ví dụ
Input-: 6789 Divide the 6789 with base 16 : 6789 / 16 = 5 (remainder) 424(quotient) Divide quotient with base: 424 / 16 = 8(remainder) 26(quotient) Divide quotient with base: 26 / 16 = 10(remainder) 1(quotient) Now reverse the remainder obtained for final hexadecimal value. Output-: 1A85
Thuật toán
Start Step 1-> Declare function to convert decimal to hexadecimal void convert(int num) declare char arr[100] set int i = 0 Loop While(num!=0) Set int temp = 0 Set temp = num % 16 IF temp < 10 Set arr[i] = temp + 48 Increment i++ End Else Set arr[i] = temp + 55 Increment i++ End Set num = num/16 End Loop For int j=i-1 j>=0 j— Print arr[j] Step 2-> In main() Set int num = 6789 Call convert(num) Stop
Ví dụ
#include<iostream> using namespace std; //convert decimal to hexadecimal void convert(int num) { char arr[100]; int i = 0; while(num!=0) { int temp = 0; temp = num % 16; if(temp < 10) { arr[i] = temp + 48; i++; } else { arr[i] = temp + 55; i++; } num = num/16; } for(int j=i-1; j>=0; j--) cout << arr[j]; } int main() { int num = 6789; cout<<num<< " converted to hexadeciaml: "; convert(num); return 0; }
Đầu ra
NẾU CHÚNG TÔI CHẠY MÃ TRÊN, NÓ SẼ TẠO ĐẦU RA SAU ĐÂY
6789 converted to hexadeciaml: 1A85