把一个十进制正整数转化成R进制
时间: 2023-05-28 21:07:16 浏览: 190
1.将要转换的十进制数不断除以R,直到商为0为止,将每次得到的余数记录下来,最后将余数倒序排列即为R进制数。
例如,将十进制数27转化为二进制数:
27÷2=13...1(余数为1)
13÷2=6...1(余数为1)
6÷2=3...0(余数为0)
3÷2=1...1(余数为1)
1÷2=0...1(余数为1)
将得到的余数倒序排列,得到二进制数11011。
2.如果要将一个小数转换成R进制,则需要将小数的整数部分和小数部分分别进行转换,并在中间插入一个小数点。
例如,将十进制数8.75转化为二进制数:
8÷2=4...0(整数部分的余数为0)
4÷2=2...0(整数部分的余数为0)
2÷2=1...0(整数部分的余数为0)
1÷2=0...1(整数部分的余数为1)
将得到的整数部分的余数倒序排列,得到二进制数1000。
0.75×2=1.5(小数部分的整数部分为1)
0.5×2=1.0(小数部分的整数部分为1)
将得到的小数部分的整数部分连起来,得到二进制数.11。
将整数部分和小数部分拼接起来,得到二进制数1000.11。
相关问题
用c语言写一个把十进制正整数转化成R进制
的函数,其中R为2~16之间的整数。
```c
#include <stdio.h>
#include <string.h>
void decimalToR(int n, int R){
char result[100];
int i = 0;
while(n > 0){
int remainder = n % R;
if(remainder < 10){
result[i++] = remainder + '0';
}else{
result[i++] = remainder - 10 + 'A';
}
n /= R;
}
for(int j = i-1; j >= 0; j--){
printf("%c", result[j]);
}
}
int main(){
int n, R;
printf("请输入一个十进制正整数:");
scanf("%d", &n);
printf("请输入R的值(2~16之间的整数):");
scanf("%d", &R);
if(R < 2 || R > 16){
printf("R的值必须在2~16之间!\n");
return 0;
}
printf("%d的%d进制表示为:", n, R);
decimalToR(n, R);
printf("\n");
return 0;
}
```
使用方法:
1. 编译运行程序;
2. 输入一个十进制正整数;
3. 输入R的值(必须为2~16之间的整数);
4. 程序输出该十进制正整数的R进制表示。
写一个程序,把一个二进制正整数转化成十进制
的数。
好的,这个问题可以回答。请稍等,我现在给你展示代码:
```
#include <stdio.h>
int binaryToDecimal(int n) {
int decimalNumber = 0, i = 0, remainder;
while (n!=0) {
remainder = n%10;
n /= 10;
decimalNumber += remainder*pow(2,i);
++i;
}
return decimalNumber;
}
int main() {
int binaryNumber;
printf("请输入一个二进制数:");
scanf("%d", &binaryNumber);
printf("%d 的十进制数是 %d", binaryNumber, binaryToDecimal(binaryNumber));
}
```
这是一个 C 语言的程序,可以将一个二进制正整数转化成对应的十进制数。你可以输入一个二进制正整数,程序会将其转化成对应的十进制数并输出。希望能对你有所帮助。