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

更新于: 2019 年 10 月 18 日

2K+ 次浏览

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告