c++编写一个函数实现数制的转换。在主函数中输入一个十进制数,输出相应的十六进制数。要求用数组实现
时间: 2023-12-03 13:44:56 浏览: 128
实现一个将十进制数转换成十六进制数的函数,可以参考如下的C++代码:
```c++
#include <iostream>
using namespace std;
void dec2hex(int num, char hex[]) {
int i = 0;
while (num > 0) {
int remainder = num % 16;
if (remainder < 10) {
hex[i++] = remainder + 48;
} else {
hex[i++] = remainder + 55;
}
num /= 16;
}
hex[i] = '\0';
// Reverse the string
int j = 0, len = i;
char temp;
while (j < len / 2) {
temp = hex[j];
hex[j] = hex[len - j - 1];
hex[len - j - 1] = temp;
j++;
}
}
int main() {
int num = 123456;
char hex[20];
dec2hex(num, hex);
cout << "The hexadecimal representation of " << num << " is: " << hex << endl;
return 0;
}
```
解释一下上面的代码:
在 `dec2hex` 函数中,我们使用一个 `while` 循环,将输入的十进制数转换成十六进制数。为了实现这个目标,我们需要在每次循环中计算余数并将其转换成相应的十六进制字符。如果余数小于 10,则使用 ASCII 码中的数字 0 到 9 来表示;否则,我们使用字母 A 到 F 来表示。
在转换完成后,我们需要将结果字符串翻转。这是因为我们是从低位到高位向字符串中添加字符的,因此最终的结果是倒序的。
在主函数中,我们定义了一个整数 `num`,并调用 `dec2hex` 函数来将其转换成十六进制数,并将结果存储在 `hex` 数组中。最后,我们输出转换后的十六进制数。
阅读全文