目的-做一个程序,将输入的十进制数字转化为二进制到十五进制中的任意形式
思路
- 如要将一个十进制的数字转化为二进制的数,就是要不断地除于2,将每一次的余数拿出来,直到除到结果小于2,再将最后这个数拿出来,将每一次的余数倒序输出就为结果啦,其他进制的数同理。
- 每次除余拿出余数要设计一个循环,倒序输出需要一个方法,下面会介绍。
步骤
1. 接受用户要选择转化为几进制
#include <stdio.h>
int main(){
int num;
printf("请输入数字:");
scanf("%d",&num);
int jinzhi;
printf("你要转化为几进制的数字:");
scanf("%d",&jinzhi);
2.倒序输出的方法
例,将 00101 倒序输出转化为 10100
方法 :将00101其看成10100的个位是0十位是0百位是1千位是0万位是1,即 1x0 + 10x0 + 100x1 + 1000x0 + 10000x1 =10100
int wei = 1;
long long sum = 0;
while(1){
int yu = num % jinzhi;
num = num / jinzhi;
//目前的总和:当前位数的值 + 之前的值
sum = sum + yu * wei;//0
wei = wei * 10 ;//1*10 100 1000
if(num < jinzhi){
sum = sum + num * wei;
break;
}
}
printf("%d\n", sum);
return 0;
}