设计一个算法输入一个十进制正整数d和进制数n输出相对应的进制数#include "sqqueue.cpp" #include "sqstack.cpp" void trans(int d,int n){ //d表示10进制正整数,n表示要转换成的进制数 //补全算法代码 ElemType e; SqStack *sq;InitStack(sq); } int main(){ trans(24,2); //将十进制24转换成2进制数(输出:11000) printf("\n"); trans(100,6); //将十进制100转换成6进制数(输出:244) return 0; }
时间: 2023-05-20 17:05:32 浏览: 121
把一个十进制实数转换成二进制数
4星 · 用户满意度95%
可以使用除n取余法来将十进制正整数d转换为n进制数。具体步骤如下:
1. 将d除以n,得到商q和余数r。
2. 将r作为n进制数的一位,记录下来。
3. 如果q不为0,则将q作为新的d,重复步骤1。
4. 如果q为0,则将记录下来的n进制数倒序排列,即为所求。
例如,将十进制正整数13转换为二进制数,步骤如下:
1. 13÷2=6...1,余数为1。
2. 将1作为二进制数的一位,记录下来。
3. 6÷2=3...0,余数为0。
4. 将0作为二进制数的第二位,记录下来。
5. 3÷2=1...1,余数为1。
6. 将1作为二进制数的第三位,记录下来。
7. 1÷2=0...1,余数为1。
8. 将1作为二进制数的第四位,记录下来。
9. 将记录下来的二进制数倒序排列,得到1101,即为13的二进制表示。
因此,可以设计一个算法如下:
1. 输入十进制正整数d和进制数n。
2. 初始化一个空字符串s。
3. 如果d为0,则返回0。
4. 当d不为0时,执行以下循环:
1. 将d除以n,得到商q和余数r。
2. 将r转换为n进制数的一位,添加到字符串s的前面。
3. 将q作为新的d。
5. 返回字符串s。
例如,将十进制正整数13转换为二进制数,可以调用该算法如下:
```
convert(13, 2)
```
输出为:
```
'1101'
```
阅读全文