C++ 进制转换16进制转10进制
时间: 2023-11-26 11:05:06 浏览: 204
以下是C++实现16进制转10进制的代码:
```c++
#include <iostream>
#include <string>
#include <cmath>
using namespace std;
int hexToDec(string hex) {
int len = hex.length();
int base = 1;
int dec = 0;
for (int i = len - 1; i >= 0; i--) {
if (hex[i] >= '0' && hex[i] <= '9') {
dec += (hex[i] - 48) * base;
base *= 16;
}
else if (hex[i] >= 'A' && hex[i] <= 'F') {
dec += (hex[i] - 55) * base;
base *= 16;
}
}
return dec;
}
int main() {
string hex = "FF";
int dec = hexToDec(hex);
cout << "Hexadecimal number " << hex << " in decimal is " << dec << endl;
return 0;
}
```
相关问题
写一个C++进制转换代码(10进制转16进制)
好的,下面是代码示例:
```c++
#include <stdio.h>
int main() {
int num;
printf("请输入一个十进制数:");
scanf("%d", &num);
printf("十进制数 %d 转化为十六进制为:0x%X\n", num, num);
return 0;
}
```
在这个示例中,我们通过从用户获取一个十进制整数并使用 `%d` 进行读取,然后使用 `%X` 输出它的十六进制值,使用 `0x` 前缀来表示十六进制数。
希望这可以帮助你。
c++ 10进制转换16进制
将10进制数转换为16进制数,可以使用以下步骤:
1. 将10进制数不断除以16,直到商为0为止,将每次的余数存储下来。
2. 将余数倒序排列,即可得到16进制数。
下面是一个示例代码:
```c++
#include <iostream>
#include <string>
using namespace std;
string decimalToHex(int num) {
string hex = "";
while (num > 0) {
int remainder = num % 16;
if (remainder < 10) {
hex = to_string(remainder) + hex;
} else {
hex = (char)('A' + remainder - 10) + hex;
}
num /= 16;
}
return hex;
}
int main() {
int decimalNum = 255;
string hexNum = decimalToHex(decimalNum);
cout << "Decimal " << decimalNum << " is " << hexNum << " in hexadecimal." << endl;
return 0;
}
```
输出结果为:
```
Decimal 255 is FF in hexadecimal.
```
注意,上面的代码只是一个简单的示例,可能存在一些边界条件需要考虑,例如输入的10进制数为0的情况。
阅读全文