2020年6月19日 星期五

C語言練習題15~進制16轉10再轉2進制1090619

1、進制16轉10再轉2進制
     程式例題~G:\我的雲端硬碟\c語言練習題\進制轉換\4進制16轉10再轉2.cpp
//16轉10再轉2進制
#include<stdio.h>
#include<string.h>
int main(){
int i=0,de=0,ans[50],power=1;
char s[50];
printf("輸入16進制=");
scanf("%s",s);
int lens=strlen(s);
printf("16進制");
for( i=0;i<lens;i++){
if (s[i]>=48 && s[i]<=58){
ans[i]=s[i]-48;//printf("%d%d=",ans[i],s[i]);
}
if (s[i]==65 || s[i]==97){
ans[i]=10;
}
if (s[i]==66 || s[i]==98){
ans[i]=11;
}
if (s[i]==67 || s[i]==99){
ans[i]=12;
}
if (s[i]==68 || s[i]==100){
ans[i]=13;
}
if (s[i]==69|| s[i]==101){
ans[i]=14;
}
if (s[i]==70 || s[i]==102){
    ans[i]=15;
}
printf("%c",s[i]);
}
printf("=");
for (i=lens-1;i>=0;i--){
de=de+ans[i]*power; //printf("de=%d,ans[%d]=%d,power=%d\n",de,i,ans[i],power);
power=power*16;
}
printf("10進制%d=",de);
int remainder=0,dividend=de,num=0;
power=1;
while (dividend!=0){
remainder=dividend%2;
num=num+remainder*power;     
power=power*10;          
dividend=dividend/2;   
}
printf("=2進制%d",num);
}
測試結果~
輸入16進制=2A
16進制2A=10進制42==2進制101010

輸入16進制=18
16進制18=10進制24==2進制11000

沒有留言:

張貼留言

Chrome教學5-建立桌面捷徑1110217

 建立桌面捷徑