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)解決
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)文章
C++ 數(shù)據(jù)結(jié)構(gòu)實(shí)現(xiàn)兩個(gè)棧實(shí)現(xiàn)一個(gè)隊(duì)列
這篇文章主要介紹了詳解C++ 數(shù)據(jù)結(jié)構(gòu)實(shí)現(xiàn)兩個(gè)棧實(shí)現(xiàn)一個(gè)隊(duì)列的相關(guān)資料,需要的朋友可以參考下2017-03-03C語(yǔ)言詳細(xì)講解strcpy strcat strcmp函數(shù)的模擬實(shí)現(xiàn)
這篇文章主要介紹了怎樣用C語(yǔ)言模擬實(shí)現(xiàn)strcpy與strcat和strcmp函數(shù),strcpy()函數(shù)是C語(yǔ)言中的一個(gè)復(fù)制字符串的庫(kù)函數(shù),strcat()函數(shù)的功能是實(shí)現(xiàn)字符串的拼接,strcmp()函數(shù)作用是比較字符串str1和str2是否相同2022-05-05C++ 實(shí)現(xiàn)PE文件特征碼識(shí)別的步驟
PE文件就是我們常說(shuō)的EXE可執(zhí)行文件,針對(duì)文件特征的識(shí)別可以清晰的知道該程序是使用何種編程語(yǔ)言實(shí)現(xiàn)的,前提是要有特征庫(kù),PE特征識(shí)別有多種形式,第一種是靜態(tài)識(shí)別,第二種則是動(dòng)態(tài)識(shí)別,我們經(jīng)常使用的PEID查殼工具是基于靜態(tài)檢測(cè)的方法。2021-06-06C++ 實(shí)現(xiàn)帶監(jiān)視哨的順序查找算法
這篇文章主要介紹了C++ 實(shí)現(xiàn)帶監(jiān)視哨的順序查找算法,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-03-03C語(yǔ)言實(shí)現(xiàn)學(xué)生選課系統(tǒng)完整版
這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)學(xué)生選課系統(tǒng)的完整版,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-02-02C語(yǔ)言字符串函數(shù)介紹與模擬實(shí)現(xiàn)詳解
字符串函數(shù)(String?processing?function)也叫字符串處理函數(shù),指的是編程語(yǔ)言中用來(lái)進(jìn)行字符串處理的函數(shù),如C,pascal,Visual以及LotusScript中進(jìn)行字符串拷貝,計(jì)算長(zhǎng)度,字符查找等的函數(shù)2022-02-02C語(yǔ)言選擇、循環(huán)、函數(shù)、數(shù)組與操作符
這篇文章主要介紹了C語(yǔ)言選擇、循環(huán)、函數(shù)、數(shù)組與操作符,文章基于C語(yǔ)言展開(kāi)對(duì)主題的詳細(xì)介紹,下文內(nèi)容需要的小伙伴可以參考一下2022-04-04利用C語(yǔ)言實(shí)現(xiàn)HashTable
根據(jù)KEY從hashtable中獲取接點(diǎn),步驟是先根據(jù)KEY計(jì)算hash值,然后從hashtable中找到指定的接點(diǎn)或者接點(diǎn)鏈表2013-09-09