目的-做一個程序享幽,將輸入的十進(jìn)制數(shù)字轉(zhuǎn)化為二進(jìn)制到十五進(jìn)制中的任意形式
思路
- 如要將一個十進(jìn)制的數(shù)字轉(zhuǎn)化為二進(jìn)制的數(shù),就是要不斷地除于2吮龄,將每一次的余數(shù)拿出來拷窜,直到除到結(jié)果小于2开皿,再將最后這個數(shù)拿出來涧黄,將每一次的余數(shù)倒序輸出就為結(jié)果啦,其他進(jìn)制的數(shù)同理赋荆。
- 每次除余拿出余數(shù)要設(shè)計一個循環(huán)笋妥,倒序輸出需要一個方法,下面會介紹糠睡。
步驟
1. 接受用戶要選擇轉(zhuǎn)化為幾進(jìn)制
#include <stdio.h>
int main(){
int num;
printf("請輸入數(shù)字:");
scanf("%d",&num);
int jinzhi;
printf("你要轉(zhuǎn)化為幾進(jìn)制的數(shù)字:");
scanf("%d",&jinzhi);
2.倒序輸出的方法
例挽鞠,將 00101 倒序輸出轉(zhuǎn)化為 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;
//目前的總和:當(dāng)前位數(shù)的值 + 之前的值
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;
}