C++语言十进制转为十六进制的函数
时间: 2023-10-11 19:05:27 浏览: 57
以下是一个将十进制数转换为十六进制的函数:
```cpp
#include <iostream>
#include <string>
std::string decToHex(int decimal) {
std::string hex = "";
while (decimal > 0) {
int remainder = decimal % 16;
if (remainder < 10) {
hex = char(remainder + 48) + hex;
} else {
hex = char(remainder + 55) + hex;
}
decimal /= 16;
}
return hex;
}
int main() {
int decimal = 12345;
std::string hex = decToHex(decimal);
std::cout << hex << std::endl;
return 0;
}
```
这个函数将十进制数作为参数传入,然后通过除以 16 并取余数的方式将其转换为十六进制。在每次计算余数时,如果余数小于 10,则将其转换为对应的 ASCII 字符('0' 到 '9'),否则将其转换为对应的大写字母('A' 到 'F')。最后,返回一个表示十六进制数的字符串。
相关问题
C++实现十进制转十六进制函数
可以使用以下代码实现十进制转十六进制的函数:
```c++
#include <iostream>
#include <string>
using namespace std;
string decToHex(int decimal) {
string hex = "";
int remainder;
while (decimal > 0) {
remainder = decimal % 16;
if (remainder < 10) {
hex = char(remainder + 48) + hex; // ASCII码值转字符
} else {
hex = char(remainder + 55) + hex;
}
decimal /= 16;
}
return hex;
}
int main() {
int decimal;
cout << "请输入一个十进制数:";
cin >> decimal;
string hex = decToHex(decimal);
cout << "转换为十六进制:" << hex << endl;
return 0;
}
```
在这个函数中,我们不断地将十进制数除以 16 并取余数,直到结果为 0。然后根据余数的值,将其转化为对应的十六进制字符,最后将所有的字符拼接起来,就得到了转换后的十六进制数。需要注意的是,如果余数小于 10,则直接转换为对应的字符;否则,需要加上 55 才能转换为对应的字符。
c++十进制转为十六进制和八进制
将十进制数转换为十六进制和八进制可以使用 C++ 中的 std::hex 和 std::oct 标志来实现。具体实现如下:
```c++
#include <iostream>
using namespace std;
int main() {
int num = 255;
cout << "十六进制:" << hex << num << endl;
cout << "八进制:" << oct << num << endl;
return 0;
}
```
输出结果为:
```
十六进制:ff
八进制:377
```