C++ 十进制转换为十六进制的程序
给定一个十进制数作为输入,任务是将给定的十进制数转换为十六进制数。
计算机中的十六进制数以 16 为基数表示,十进制数以 10 为基数表示,并用 0 到 9 的值表示,而十六进制数的数字从 0 到 15 开始,其中 10 表示为 A,11 表示为 B,12 表示为 C,13 表示为 D,14 表示为 E,15 表示为 F。
要将十进制数转换为十六进制数,请按照以下步骤操作:
- 首先,将给定数字除以转换数字的基数,例如,将 6789 除以 16,因为我们需要将 6789 转换为以 16 为基数的十六进制数,然后获得商并将其存储。如果余数在 0 到 9 之间,则按原样存储;如果余数在 10 到 15 之间,则将其转换为 A 到 F 的字符形式。
- 将获得的商除以十六进制数的基数 16,并继续存储位。
- 对存储的位进行右移操作。
- 重复此步骤,直到余数不可再除。
以下是将十进制数转换为十六进制数的图形表示。
示例
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
算法
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
示例
#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; }
输出
如果我们运行以上代码,它将生成以下输出:
6789 converted to hexadeciaml: 1A85
广告