C++程序 十进制转十六进制

C++程序 十进制转十六进制

给定一个十进制数作为输入,我们需要编写一个程序将给定的十进制数转换为等价的十六进制数。即将基值为10的数字转换为基值为16的数字。

十六进制数使用16个值表示一个数字。数字从 0-9 用0-9的数字表示,而数字 10-15 则由A-F的字符表示。

实例:

输入:116
输出:74

输入:10
输出:A

输入:33
输出:21

算法:

  1. 将数字除以16的余数存储在一个临时变量temp中。如果temp小于10,则在字符数组中插入(48 + temp); 否则,如果temp大于或等于10,则在字符数组中插入(55 + temp)。
  2. 现在将数字除以16。
  3. 重复以上两个步骤,直到数字不等于0。
  4. 现在以相反的顺序打印数组。

示例

如果给定的十进制数是2545。

第1步 :计算当2545除以16的余数为1。因此,temp = 1。由于temp小于10,所以arr [0] = 48 + 1 = 49 =“1”。

第2步 :将2545除以16。新数字为2545/16 = 159。

第3步 :当159除以16的余数为15时,计算temp = 15。因此,由于temp大于10,所以arr [1] = 55 + 15 = 70 =“F”。

第4步 :将159除以16。新数字为159/16 = 9。

第5步 :计算将9除以16的余数为9。因此,由于temp小于10,所以arr [2] = 48 + 9 = 57 =“9”。

第6步 :将9除以16。新数字为9/16 = 0。

第7步 :因为数字变为0。停止重复步骤并以相反的顺序打印数组。因此,相应的十六进制数为9F1。

下图显示了将十进制数2545转换为等效十六进制数的示例。

C++程序 十进制转十六进制

以下是上述想法的实现

// C++ program to convert a decimal
// number to hexadecimal number
#include <iostream>
using namespace std;
  
// Function to convert decimal 
// to hexadecimal
void decToHexa(int n)
{
    // char array to store hexadecimal number
    char hexaDeciNum[100];
  
    // Counter for hexadecimal number array
    int i = 0;
    while (n != 0) 
    {
        // Temporary variable to store remainder
        int temp = 0;
  
        // Storing remainder in temp variable.
        temp = n % 16;
  
        // Check if temp < 10
        if (temp < 10) 
        {
            hexaDeciNum[i] = temp + 48;
            i++;
        }
        else 
        {
            hexaDeciNum[i] = temp + 55;
            i++;
        }
  
        n = n / 16;
    }
  
    // Printing hexadecimal number 
    // array in reverse order
    for (int j = i - 1; j >= 0; j--)
        cout << hexaDeciNum[j];
}
  
// Driver code
int main()
{
    int n = 2545;
    decToHexa(n);
    return 0;
}  

输出:

9F1

时间复杂度 :O(log 16 n)

辅助空间 :O(1)

使用预定义函数

// C++程序将十进制数字转换成十六进制数字
#include <iostream>
using namespace std;
  
// 将十进制数字转换成十六进制数字的函数
void decToHexa(int n) 
{ 
   cout << hex << n << endl; 
}
  
// 主程序
int main()
{
    int n = 2545;
    decToHexa(n);
    return 0;
}

输出:

9f1

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程