欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C語(yǔ)言實(shí)現(xiàn)十進(jìn)制轉(zhuǎn)任意進(jìn)制的代碼詳解

 更新時(shí)間:2024年05月31日 11:52:06   作者:ConFig.  
這篇文章主要介紹了C語(yǔ)言實(shí)現(xiàn)十進(jìn)制轉(zhuǎn)任意進(jìn)制,運(yùn)用一個(gè)數(shù)組,通過(guò)數(shù)字每次取任意進(jìn)制模,存在數(shù)組中, 再通過(guò)倒取數(shù)組中的數(shù)值,來(lái)實(shí)現(xiàn)進(jìn)制轉(zhuǎn)換,如果遇到十六進(jìn)制,利用ASCII碼值  數(shù)字字符和大寫(xiě)字母 相差55的特性來(lái)解決,文中有詳細(xì)代碼示例,需要的朋友可以參考下

主要思路:運(yùn)用一個(gè)數(shù)組,通過(guò)數(shù)字每次取任意進(jìn)制模,存在數(shù)組中, 再通過(guò)倒取數(shù)組中的數(shù)值,來(lái)實(shí)現(xiàn)進(jìn)制轉(zhuǎn)換,如果遇到十六進(jìn)制,利用ASCII碼值  數(shù)字字符和大寫(xiě)字母 相差55的特性來(lái)解決

 
int main()
{
	int a[50];//把取模的值放到數(shù)組中1
	int i = 0;
	int num,k;
	printf("選擇你要轉(zhuǎn)換的進(jìn)制\n");
	scanf("%d", &k);
	printf("請(qǐng)輸入一個(gè)數(shù)字\n");
	scanf("%d", &num);//輸入一個(gè)數(shù)字
	int prenum = num;
	if (num > 0)
	{
		while (num != 0)
		{
			a[i] = num % k;
			num = num / k;
			i++;
		}
		printf("%d的%d進(jìn)制為", prenum, k);
		for (i -= 1; i >= 0; i--)//倒序輸出數(shù)組中的數(shù)字
		{
			if (a[i] >= 0 && a[i] <= 9)//如果是正常數(shù)字 則輸出
				printf("%d", a[i]);
			else//如果是大于9的則用字母ABCDEF來(lái)代替
			{
				printf("%c", a[i] + 55);
			}
		}
	}
	else
	{
		printf("%d的%d進(jìn)制為0", prenum, k);
	}
	return 0;
}
int main()
{
    int i = 0;
    int m, k;
    int a[20];
	printf("請(qǐng)輸入要轉(zhuǎn)化的數(shù)字:");
	scanf("%d", &m);
	printf("請(qǐng)輸入要轉(zhuǎn)化的進(jìn)制數(shù):");
	scanf("%d", &k);
	if (m > 0)
	{
        for (i = 0; m != 0; i++)//每次取模都放在數(shù)組中
        {
            a[i] = m % k;
            m = m / k;
        }
        int j = 0;
        for (j = i - 1; j >= 0; j--)//倒著取數(shù)組中的數(shù) 
        {
            switch (a[j])//十六進(jìn)制處理
            {
            case 10:
                printf("A");
                break;
            case 11:
                printf("B");
                break;
            case 12:
                printf("C");
                break;
            case 13:
                printf("D");
                break;
            case 14:
                printf("E");
                break;
            case 15:
                printf("F");
                break;
            default://小于十的數(shù)整除輸出
                printf("%d", a[j]);
            }
        }
	}
	else
	{
        printf("0\n");
	}
    return 0;
}

拓展:

十進(jìn)制轉(zhuǎn)換為二進(jìn)制

運(yùn)行圖:

 源代碼:

#include <stdio.h>
/*10進(jìn)制轉(zhuǎn)換為2進(jìn)制*/
void conversion(int a)
{
	int chu, yu;
	chu=a/2;
	yu=a%2;
	if(chu==0)
	{
		printf("%d",yu);
	}
    else
    {
    	conversion(chu);
    	printf("%d",yu);
	}
}
int main(void)
{
	int x;
	printf("請(qǐng)輸入10進(jìn)制數(shù):");
	scanf("%d",&x);
	printf("轉(zhuǎn)化后的2進(jìn)制為:");
	conversion(x);
    return 0;
}

十進(jìn)制轉(zhuǎn)換為八進(jìn)制

運(yùn)行圖:

源代碼:

#include <stdio.h>
/*10進(jìn)制轉(zhuǎn)換為8進(jìn)制*/
void conversion(int a)
{
	int chu, yu;
	chu=a/8;
	yu=a%8;
	if(chu==0)
	{
		printf("%d",yu);
	}
    else
    {
    	conversion(chu);
    	printf("%d",yu);
	}
}
int main(void)
{
	int x;
	printf("請(qǐng)輸入10進(jìn)制數(shù):");
	scanf("%d",&x);
	printf("轉(zhuǎn)化后的8進(jìn)制為:");
	conversion(x);
    return 0;
}

十進(jìn)制轉(zhuǎn)換為十六進(jìn)制

運(yùn)行圖:

源代碼:

#include <stdio.h>
/*10進(jìn)制轉(zhuǎn)換為16進(jìn)制*/
int sum(unsigned a,char buf[])
{
	int chu, yu;
	chu=a/16;
	yu=a%16;
	if(chu==0)
	{
		printf("%c",buf[yu]);
	}
    else
    {
    	sum(chu,buf);
    	printf("%c",buf[yu]);
	}
}
int main(void)
{
	int a;
	char buf[16]="0123456789ABCDEF";
	printf("請(qǐng)輸入10進(jìn)制數(shù):");
	scanf("%d",&a);
	printf("轉(zhuǎn)化后的16制數(shù)為:");
	sum(a,buf);
    return 0;
}

到此這篇關(guān)于C語(yǔ)言實(shí)現(xiàn)十進(jìn)制轉(zhuǎn)任意進(jìn)制的代碼詳解的文章就介紹到這了,更多相關(guān)C語(yǔ)言十進(jìn)制轉(zhuǎn)任意進(jìn)制內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論