日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

C語言實現任意進制轉換器_C 語言

作者:目標是yao大佬 ? 更新時間: 2022-03-31 編程語言

本文實例為大家分享了C語言實現任意進制轉換器的具體代碼,供大家參考,具體內容如下

簡單的C語言任意進制轉換器

該進制轉換器可進行任意進制轉換,請看效果圖:

代碼

/**
******函數聲明

******進制函數,輸入與輸出
void main();

******返回將n進制num轉換成的十進制數
int NToD(char *num,int n);

******將十進制數d轉換成m進制數mnum
void DToM(int d,int m,char *mnum);

*/
#include<stdio.h>
#include<stdlib.h>
#include<string.h>

/**
? 進制轉換
*/
int NToD(char *num,int n); ? ? ? ? ? /**返回將n進制num轉換成的十進制數*/
void DToM(int d,int m,char *mnum); ?/**將十進制數d轉換成m進制數mnum*/

void main()
{
? ? int N,M; ? ? ? ? ? ? ? ? ? ? ? ? /**分別代表進制數*/
? ? char Nnum[20],Mnum[20]; ? ? ? ? ?/**存放N進制數及轉換后的M進制數*/
? ? while(1)
? ? {
? ? ? ? printf("請輸入需要轉換的幾進制:");
? ? ? ? scanf("%d",&N);
? ? ? ? printf("請輸入需要轉換的幾進制數:");
? ? ? ? scanf("%s",Nnum);
? ? ? ? printf("請輸入需要被轉換成為幾進制");
? ? ? ? scanf("%d",&M);
? ? ? ? int d=NToD(Nnum,N); ? ? ? ? ? ? ?/**將N進制數Mnum轉換為十進制數d*/
? ? ? ? DToM(d,M,Mnum); ? ? ? ? ? ? ? ? ?/**將十進制數d轉化為M進制數Mnum*/
? ? ? ? printf("%d進制數%s轉換為%d進制數為:%s\n",N,Nnum,M,Mnum);
? ? ? ? printf("\n");
? ? }
}
int NToD(char *num,int n)
{
? ? int i,weight=1,d=0; ? ? ? ? ? ? ?/**weight存放各位的權值及num對應的十進制數*/
? ? int len=strlen(num); ? ? ? ? ? ? /**計算num的長度*/
? ? for(int i=len-1;i>=0;i--) ? ? ? ?/**N進制數num轉化為十進制數*/
? ? {
? ? ? ? if(num[i]>='a'&&num[i]<='z') /**將字母映射到對應的十進制數*/
? ? ? ? ? ?d+=(num[i]-'a'+10)*weight;
? ? ? ? ? ?else if(num[i]>='A'&&num[i]<='Z')
? ? ? ? ? ? d+=(num[i]-'A'+10)*weight;
? ? ? ? else
? ? ? ? ? ? d+=(num[i]-'0')*weight;
? ? ? ? weight*=n; ? ? ? ? ? ? ? ? ? ?/**向左移一位,權值變為原來的n倍*/
? ? }
? ? return d;
}
void DToM(int d,int m,char *mnum)
{
? ? int len=0,r;
? ? do
? ? {
? ? ? ? r=d%m;
? ? ? ? if(r>=10)
? ? ? ? ? ? mnum[len++]=r-10+'A'; ? ? /**余數大于等于10時映射成字母*/
? ? ? ? else
? ? ? ? ? ? mnum[len++]=r+'0'; ? ? ? ?/**余數小于10時映射成數字*/
? ? ? ? d/=m;
? ? }while(d!=0);
? ? mnum[len]='\0';
? ? char t;
? ? for(int i=0,j=len-1;i<j;i++,j--)
? ? {
? ? ? ? t=mnum[i];
? ? ? ? mnum[i]=mnum[j];
? ? ? ? mnum[j]=t;
? ? }
}

原文鏈接:https://blog.csdn.net/qq_46883219/article/details/119277194

欄目分類
最近更新