请用c++写一段进制转换代码
时间: 2024-04-05 16:09:59 浏览: 14
Sure, 进制转换代码如下:
```c
#include <stdio.h>
void convert(int num, int base) {
int rem = num % base;
if (num == 0) {
return;
} else {
convert(num / base, base);
if (rem < 10) {
printf("%d", rem);
} else {
printf("%c", rem - 10 + 'A');
}
}
}
int main() {
int num, base;
printf("Enter a decimal number: ");
scanf("%d", &num);
printf("Enter the base to convert to (2-16): ");
scanf("%d", &base);
if (base < 2 || base > 16) {
printf("Invalid input\n");
} else {
printf("%d base 10 = ", num);
convert(num, base);
printf(" base %d\n", base);
}
return 0;
}
```
如果您有关于代码的任何问题,请随时问我!
相关问题
帮我用c++写一段2进制转16进制的代码
好的,以下是一个简单的 C++ 代码示例,用于将二进制数转换为十六进制数:
```c++
#include <iostream>
#include <string>
using namespace std;
// 将二进制数转换为十六进制数
string binaryToHex(string binary)
{
string hex = "";
int len = binary.length();
// 如果二进制数的长度不是4的倍数,则在前面添加0,使其长度为4的倍数
if (len % 4 != 0)
{
int zeros = 4 - len % 4;
for (int i = 0; i < zeros; i++)
{
binary = "0" + binary;
}
len += zeros;
}
// 将二进制数每4位分组,转换为相应的十六进制数
for (int i = 0; i < len; i += 4)
{
string group = binary.substr(i, 4);
int decimal = stoi(group, 0, 2);
if (decimal < 10)
{
hex += to_string(decimal);
}
else
{
hex += char(decimal + 55);
}
}
return hex;
}
int main()
{
string binary = "11010111";
string hex = binaryToHex(binary);
cout << "Binary: " << binary << endl;
cout << "Hex: " << hex << endl;
return 0;
}
```
上述代码首先定义了一个名为 `binaryToHex` 的函数,用于将二进制数转换为十六进制数。该函数首先检查二进制数的长度是否为4的倍数,如果不是,则在前面添加0,使其长度为4的倍数。然后,它将二进制数每4位分组,将每个组转换为相应的十六进制数,并将它们连接成一个字符串,最后返回该字符串。
在 `main` 函数中,我们定义了一个名为 `binary` 的字符串,表示要转换的二进制数。然后,我们调用 `binaryToHex` 函数将其转换为十六进制数,并将结果打印到控制台上。
运行该程序,输出结果如下:
```
Binary: 11010111
Hex: D7
```
希望这段代码能够帮到你!
用C++写一段十进制转十六进制代码,并输出
### 回答1:
#include <stdio.h>
int main() {
int decimal;
printf("请输入一个十进制数: ");
scanf("%d", &decimal);
printf("转换成十六进制: %x", decimal);
return 0;
}
### 回答2:
下面是一个用C语言编写的将十进制数转换为十六进制的代码,并输出结果。
```c
#include<stdio.h>
void convertToHexadecimal(int decimal) {
int quotient;
int remainder;
int i = 1;
char hexadecimal[100];
quotient = decimal;
while (quotient != 0) {
remainder = quotient % 16;
if (remainder < 10) {
hexadecimal[i++] = remainder + 48;
} else {
hexadecimal[i++] = remainder + 55;
}
quotient = quotient / 16;
}
printf("转换为十六进制的结果为: ");
for (int j = i - 1; j > 0; j--) {
printf("%c", hexadecimal[j]);
}
printf("\n");
}
int main() {
int decimal;
printf("请输入一个十进制数: ");
scanf("%d", &decimal);
convertToHexadecimal(decimal);
return 0;
}
```
运行程序后,会要求您输入一个十进制数。然后,代码将使用循环将该数转换为十六进制,并输出结果。例如,如果您输入的十进制数为15,那么输出将是"F"。
### 回答3:
以下是用C语言写的将十进制数转换为十六进制数的代码,并输出转换结果。
```C
#include <stdio.h>
void decToHex(int n) {
if (n == 0) {
printf("0");
return;
}
int hex[100];
int i = 0;
while (n > 0) {
hex[i] = n % 16;
n = n / 16;
i++;
}
printf("转换结果为十六进制数为: ");
for (i = i - 1; i >= 0; i--) {
if (hex[i] < 10) {
printf("%d", hex[i]);
} else {
printf("%c", hex[i] + 55);
}
}
}
int main() {
int decimal;
printf("请输入一个十进制数:");
scanf("%d", &decimal);
decToHex(decimal);
return 0;
}
```
该代码首先定义了一个名为`decToHex`的函数,用于将十进制数转换为十六进制数,并输出转换结果。在主函数`main`中,用户需要输入一个十进制数,并调用该函数进行转换。最终,将转换结果输出到屏幕上。
例如,如果用户输入的十进制数为255,则输出的转换结果为十六进制数FF。