编写一个将某个范围在-32768~32767之间的整数转换为R进制(R=2,5,8,16)的通用程序。这个代码区的设计思路
时间: 2023-06-06 07:05:16 浏览: 59
很简单,可以使用常规的除以R法实现转换,具体实现有很多方法,下面是使用递归的一种示例代码:
```C++
#include <iostream>
using namespace std;
void convert(int num, int r) {
if (num == 0) return;
convert(num / r, r);
int remainder = num % r;
if (remainder < 10) cout << remainder ;
else cout << char(remainder - 10 + 'A');
}
int main() {
int num = -32768;
int r = 16;
if (num < 0) {
num = -num;
cout << '-';
}
convert(num, r);
cout << endl;
return 0;
}
```
这里使用了递归方法实现转换,关键是要注意处理负数的情况。首先将负数转换为正数,并输出符号'-'; 然后使用除以R法计算余数,并输出对应的字符或数字,最后输出换行符。可以根据需要修改范围和进制的值。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)