任意進(jìn)制之間的進(jìn)制轉(zhuǎn)換。需要考慮高精度整形的設(shè)計,用數(shù)組模擬一個整形變量。一位一位的進(jìn)行進(jìn)制轉(zhuǎn)換,算法思想和十進(jìn)制轉(zhuǎn)換到二進(jìn)制相同,除以目標(biāo)進(jìn)制,余數(shù)為低位。這種進(jìn)制轉(zhuǎn)換實用性不強(qiáng),一般出現(xiàn)在計算機(jī)程序競賽當(dāng)中。
成都創(chuàng)新互聯(lián)服務(wù)項目包括綏江網(wǎng)站建設(shè)、綏江網(wǎng)站制作、綏江網(wǎng)頁制作以及綏江網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢、行業(yè)經(jīng)驗、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,綏江網(wǎng)站推廣取得了明顯的社會效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到綏江省份的部分城市,未來相信會繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!
8,10,16進(jìn)制的轉(zhuǎn)換。在C語言中有不少函數(shù)都能實現(xiàn)上面幾種進(jìn)制之間的進(jìn)制轉(zhuǎn)換。
推薦其中的sprintf/sscanf函數(shù)。
sprintf格式的規(guī)格如下所示。[]中的部分是可選的。
%[指定參數(shù)][標(biāo)識符][寬度][.精度]指示符
若想輸出'%'本身時, 請使用'%%'處理。
1. 處理字符方向。負(fù)號時表示從后向前處理。
2. 填空字元。 0 的話表示空格填 0;空格是內(nèi)定值,表示空格就放著。
3. 字符總寬度。為最小寬度。
4. 精確度。指在小數(shù)點后的浮點數(shù)位數(shù)。
轉(zhuǎn)換字符
%% 印出百分比符號,不轉(zhuǎn)換。
%c 整數(shù)轉(zhuǎn)成對應(yīng)的 ASCII 字元。
%d 整數(shù)轉(zhuǎn)成十進(jìn)位。
%f 倍精確度數(shù)字轉(zhuǎn)成浮點數(shù)。
%o 整數(shù)轉(zhuǎn)成八進(jìn)位。
%s 整數(shù)轉(zhuǎn)成字符串。
%x 整數(shù)轉(zhuǎn)成小寫十六進(jìn)位。
%X 整數(shù)轉(zhuǎn)成大寫十六進(jìn)位。
例程(16進(jìn)制和10進(jìn)制之間的轉(zhuǎn)換):
#include?stdio.h??
#include?limits.h??
int?main()??
{??
char?s[100]?=?{0};??
sprintf(s,?"%x",?INT_MAX);??
printf("%s\n",?s);?//?7fffffff??
char?str[100]?=?"7fffffff";??
int?i?=?0;??
sscanf(str,?"%x",?i);??
printf("%d\n",?i);?//?2147483647??
return?0;???
}
#includestdio.h
int main()
{
int i,j,x,a[1000];
scanf("%d",x);
for(i=0;;i++)
{
a[i]=x%2;
x=x/2;
if(x==0)
break;
}
for(j=i;j=0;j--)
printf("%d",a[j]);
return 0;
}
代碼沒有調(diào)試,可以參考參考
剛幫你從網(wǎng)上找了個例子,主要思想就是用X,d,O等打印出來
void two_ten()
{
long num;
int b,TheTen=0,Total=0;
printf("\n請輸入一個二進(jìn)制數(shù)(只包含0或1):");
scanf("%ld",num);
while(num)
{
b=num-(int)(num/10)*10;
TheTen+=b*pow(2,Total);;
Total++;
num=(int)(num/10);
}
printf("轉(zhuǎn)換為十進(jìn)制:"); //打印
printf("%d",TheTen);
printf("\n");
}
void eight_ten()
{
int num, i;
int arr[20];
printf("\n請輸入一個八進(jìn)制數(shù)(只由0~7之前的數(shù)組成):");
scanf("%o",num);
printf("轉(zhuǎn)換為十進(jìn)制:"); //打印
printf("%d",num);
printf("\n");
}
void sixteen_ten()
{
int num, i;
int arr[20];
printf("\n請輸入一個十六進(jìn)制數(shù)(只由0~9和A~F之前的數(shù)組成):");
scanf("%X",num);
printf("轉(zhuǎn)換為十進(jìn)制:"); //打印
printf("%d",num);
printf("\n");
}
隨便寫了個
#includestdio.h
int atod(char a, char b, char c, char d){
return (a % 0x30) * 1000 + (b % 0x30) * 100 + (c % 0x30) * 10 + (d % 0x30);
}
int atox(char a, char b, char c){
unsigned int n;
a = a | 0x20;
b = b | 0x20;
c = c | 0x20;
n = (a 0x3a ? a % 0x57 : a % 0x30) * 0x100;
n = n + (b 0x3a ? b % 0x57 : b % 0x30) * 0x10;
n = n + (c 0x3a ? c % 0x57 : c % 0x30);
return n;
}
int main(){
int n;
char a, b, c, d, t;
for(n = 0; n 10; n++){
printf(" 1 - for conversion from 4-Decimal-Characters to a decimal integer\n\
2 - for conversion from 3-Hexadecimal-Characters to a decimal integer\n\
0 - Exit\n");
t = getch();
if(t == '1'){
printf("conversion from 4-Decimal-Characters\n");
scanf("%c %c %c %c", a, b, c, d);
printf("%d\n", atod(a, b, c, d));
} else if(t == '2') {
printf("conversion from 3-Hexadecimal-Characters\n");
scanf("%c %c %c", a, b, c);
printf("%d\n", atox(a, b, c));
} else {
break;
}
}
return 0;
}
新聞名稱:c語言中進(jìn)制轉(zhuǎn)義的函數(shù) C語言轉(zhuǎn)義字符的使用
標(biāo)題來源:http://muchs.cn/article28/hjcjcp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)網(wǎng)站建設(shè)、網(wǎng)站設(shè)計公司、網(wǎng)站建設(shè)、搜索引擎優(yōu)化、自適應(yīng)網(wǎng)站、品牌網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)