1. c語言程序 自定義函數實現:二進制轉換為十進制。
先定符號負數先弄個負號,然後可以用Ascii碼或BCD碼表示十進制,ASCII碼除以10用余數轉成字元完成後加結束符,然後翻轉字元串!BCD每位元組兩位10進數,方法一樣。正常計算機內所有數據,都以二進製表系,如果是字元串二進制,先轉成計算機內的二進製表示,再轉10進制好了!
2. 用C語言編寫二進制轉換十進制的程序。
1、為了完成進制的轉換,在主函數中聲明了個函數Sum,主要用於將二進制的每一位轉換為十進制後的數相加,返回值就是相加後的和。另外定義了一個數組array[8],用於存放輸入的八位二進制數。
3. 如何使用C語言編寫二進制轉換為十進制的程序
#include<stdio.h>
#include<math.h>
#include<string.h>
/*任意進制數轉十進制數*/
/*char*value:其他進制數,以字元串形式存儲*/
/*int*result:轉換後的十進制數*/
/*intradix:待轉換的進制*/
/*R進制數共n位,第n位表示為Xn。轉換後的10進制數表示為Y*/
/*Y=Xn*R^0+Xn-1*R^1+Xn-2*R^2+……+X1*R^n-1*/
voidothers2Decimal(char*value,int*result,intradix){
intdigit,i,j;
*result=0;
for(i=strlen(value)-1,j=0;i>=0;i--,j++){
if(value[i]>='0'&&value[i]<='9')
digit=value[i]-'0';
if(value[i]>='a'&&value[i]<='z')/*十以上進制處理,小寫字母*/
digit=value[i]-'a'+10;
if(value[i]>='A'&&value[i]<='Z')/*十以上進制處理,大寫字母*/
digit=value[i]-'A'+10;
*result+=digit*pow(radix,j);
}
}
/*校驗輸入的某進制數是否合法*/
/*合法:返回1;不合法:返回0*/
intcheck(char*value,intradix){
inti;
for(i=0;i<strlen(value);i++){
if(radix<=10&&value[i]>='0'&&value[i]<='9'&&value[i]>=radix+'0')
return0;
if(radix>10&&value[i]>='a'&&value[i]<='z'&&value[i]>=radix-10+'a')
return0;
if(radix>10&&value[i]>='A'&&value[i]<='Z'&&value[i]>=radix-10+'A')
return0;
}
return1;
}
intmain(void){
char*value;
intradix=2,result;
printf("請輸入%d進制數:",radix);
fflush(stdin);/*清除緩沖區*/
gets(value);
if(check(value,radix)!=1){
putchar(' ');
printf("輸入的%d進制數有誤! ",radix);
putchar(' ');
return0;
}
putchar(' ');
puts("================================================================ ");
printf("10進制轉換結果:");
others2Decimal(value,&result,radix);
printf("%d ",result);
putchar(' ');
getch();/*屏幕暫留*/
return0;
}
運行結果
4. c語言如何把一個字元串格式的二進制數轉化為整數型的十進制數
首先要說,在計算機裡面不存在十進制數。我們看到的輸出的十進制數,其實是C編譯器把真正的二進制數的數值以十進制形式顯示在屏幕上。如果說計算機裡面有十進制數的話,那麼BCD數可以算是一種形式的十進制數。
而題目中的字元串格式的二進制數,也就是一串的'0','1'字元;轉化為整數型其實就是求得其實際數值,最後以十進制形式輸出。
#include <stdio.h>
int main()
{
long int m;
char c0[50],*c ;
while(scanf("%s",c0)!=EOF){
m = 0;c=c0;
while(*c)
m += (m + *(c++)-'0');
printf("%d\n",m);
}
return 0;
}