用C++实现十进制转b进制,b大于1小于10
时间: 2023-03-25 14:03:05 浏览: 42
可以使用以下代码实现十进制转b进制:
```c
#include <stdio.h>
void decimalToBase(int decimal, int base) {
int remainder;
if (decimal == ) {
return;
} else {
remainder = decimal % base;
decimalToBase(decimal / base, base);
printf("%d", remainder);
}
}
int main() {
int decimal, base;
printf("请输入一个十进制数:");
scanf("%d", &decimal);
printf("请输入要转换的进制数:");
scanf("%d", &base);
printf("%d的%d进制表示为:", decimal, base);
decimalToBase(decimal, base);
printf("\n");
return ;
}
```
其中,decimalToBase() 函数用递归的方式实现了十进制转b进制的过程,而 main() 函数则负责获取用户输入并输出结果。
相关问题
用C++实现十进制转b进制,b大于1小于10,简单点的方法
可以使用短除法来实现十进制转b进制,具体步骤如下:
1. 将十进制数不断除以b,得到商和余数。
2. 将余数记录下来,作为b进制数的一位。
3. 将商作为新的十进制数,重复步骤1和2,直到商为为止。
4. 将记录下来的余数倒序排列,即为b进制数。
以下是用C语言实现十进制转b进制的代码:
```c
#include <stdio.h>
void decimalToB(int decimal, int b) {
int result[32]; // 用数组记录每一位的余数
int i = ;
while (decimal > ) {
result[i] = decimal % b;
decimal /= b;
i++;
}
for (int j = i - 1; j >= ; j--) {
printf("%d", result[j]);
}
}
int main() {
int decimal = 123;
int b = 2;
decimalToB(decimal, b);
return ;
}
```
以上代码将十进制数123转换为2进制数,输出结果为1111011。
c++十进制转二进制
要将C语言中的十进制数转换为二进制数,可以使用以下步骤:
1. 首先,声明一个整型数组来存储每次对2取余的结果。在这个例子中,数组名为a,长度为16。
2. 接下来,使用一个for循环来进行转换。循环变量j的初始值为0,终止条件为j小于15。每次循环中,执行以下操作:
a. 使用变量i来存储给定的十进制数n对2取余的结果。即i = n % 2。
b. 使用变量b来存储n除以2的商。即b = n / 2。
c. 更新n的值为b。即n = b。
d. 将取余结果i存入数组a中。即a[j] = i。
e. 将循环变量j的值加1。即j++。
3. 接下来,使用另一个for循环来反向输出数组a中的取余结果。循环变量j的初始值为15,终止条件为j大于等于0。每次循环中,执行以下操作:
a. 输出数组a中的元素a[j]。
b. 如果j对4取模的结果等于0,则输出一个空格。
4. 最后,结束程序的执行。
下面是一个示例代码,可以实现将十进制数转换为二进制数的功能:
#include <iostream>
using namespace std;
int main() {
int i, n;
int a[16] = {0};
cout << "请输入一个整数(0-32767): ";
cin >> n;
for (int j = 0; j < 15; j++) {
int b;
i = n % 2;
b = n / 2;
n = b;
a[j] = i;
}
for (int j = 15; j >= 0; j--) {
cout << a[j];
if (j % 4 == 0)
cout << " ";
}
return 0;
}
在这个例子中,我们首先声明了一个整型数组a来存储每次对2取余的结果。然后,使用两个for循环分别进行转换和输出。第一个for循环用于将给定的十进制数转换为二进制数并存入数组a中,第二个for循环用于反向输出数组a中的取余结果。在输出中,每输出4个元素就加一个空格,以增加可读性。
请注意,此示例代码中的数组长度为16,可以处理最大为32767的十进制数。如果需要处理更大的整数,请相应地增加数组的长度。