10进制转16进制c++代码,并且带负数
时间: 2024-09-15 09:09:06 浏览: 71
在C++中,将10进制转换为16进制可以使用`std::stringstream`和`std::hex`特性。对于包含负数的情况,需要先判断正负然后处理。以下是简单的代码示例:
```cpp
#include <iostream>
#include <sstream>
// 将10进制整数转换为16进制字符串
std::string decimalToHex(int num) {
std::ostringstream oss;
oss << std::hex; // 开启十六进制模式
if (num < 0) { // 如果是负数
oss << "-";
num = -num; // 转正后再转换
}
oss << num;
return oss.str();
}
int main() {
int decimal = -42; // 示例负数
std::cout << "十进制:" << decimal << "\n";
std::cout << "十六进制:" << decimalToHex(decimal) << "\n";
// 对于正数也可以同样操作
int positiveDecimal = 255;
std::cout << "十进制:" << positiveDecimal << "\n";
std::cout << "十六进制:" << decimalToHex(positiveDecimal) << "\n";
return 0;
}
```
当你运行此程序,它会输出:
```
十进制:-42
十六进制:-2a
十进制:255
十六进制:ff
```
阅读全文