當前位置:首頁 » 編程語言 » c語言二進制轉換為十進制

c語言二進制轉換為十進制

發布時間: 2022-08-10 08:21:40

『壹』 c語言 將一個二進制數,轉換為對應的十進制數。

#include<stdio.h>
#include<math.h>
int main()
{
int a[10] = {1,0,0,1,0,1,1,0,0,0};//這里只是預先寫好的二進制數,可以自行改為主動輸入,主要體現過程
int i = 0;
int sum = 0;
for(i = 9;i>=0;i--)//9為數組最後一位
{
sum = sum + a[i];pow(2,abs(i-9));//i- 9 的絕對值判定乘以2 的幾次方
}
printf("%d\n",sum);
return 0;
}

『貳』 c語言二進制轉十進制

//---------------------------------------------------------------------------

#include <stdio.h>

long int btd(char *s) /*將以字元串形式存儲在s地址中的二進制數字轉換為對應的十進制數字*/
{
long int rt=0;
int i,n=0;

while (s[n]) n++;

for (--n,i=n; i>=0; i--)
rt|=(s[i]-48)<<n-i;

return rt;
}
int main(int argc, char* argv[])
{
printf("%ld",btd("11011"));/*示例,輸出11011B的十進制形式*/
return 0;
}
//---------------------------------------------------------------------------

『叄』 c語言怎麼將2進制轉化為10進制

#include<stdio.h>
intSum(inta[]);
intpower(intb);
intmain()
{
intarray[8],i;

printf("輸入一個8位二進制數:");

for(i=0;i<8;i++)
{
scanf("%1d",&array[i]);
}

printf("轉換為十進制數後是:%d ",Sum(array));

return0;

}

intSum(inta[])
{
intn,i,sum=0,term;//n為指數,term為每一項的值,如1*(2*2),sum為總和

for(i=0,n=7;i<8;i++,n--)
if(n>=0)
{term=a[i]*power(n);
sum=sum+term;
}
returnsum;


}

intpower(intb)
{
inti=2,j=1;
if(b==0)
i=1;
for(;j<b;j++)
i=2*i;
returni;

}

『肆』 如何使用C語言編寫二進制轉換為十進制的程序

將二進制轉成十進制,按權值展開求和即可。

可以通過以下代碼解決:

#include <stdio.h>

#include <stdlib.h>

int main()

{

char a[17];

gets(a);

int len,i,sum=0,m,j;

len=strlen(a);

if(len<=16)

{

for(i=0;i<len;i++)

{

m=1;

if(a[i]=='1')

{

for(j=1;j<=len-i-1;j++)

m*=2;

sum+=m;

}

}

printf("%d",sum);

}

return 0;

}

(4)c語言二進制轉換為十進制擴展閱讀

我們常用的進制包括:二進制、八進制、十進制與十六進制,它們之間區別在於數運算時是逢幾進一位。比如二進制是逢2進一位,十進制也就是我們常用的0-9是逢10進一位。

十進制轉二進制:十進制數除2取余法,即十進制數除2,余數為權位上的數,得到的商值繼續除2,依此步驟繼續向下運算直到商為0為止。

八進制轉二進制:八進制數通過除2取余法,得到二進制數,對每個八進制為3個二進制,不足時在最左邊補零。

十六進制轉二進制:十六進制數通過除2取余法,得到二進制數,對每個十六進制為4個二進制,不足時在最左邊補零。

負數的進制轉換稍微有些不同。

先把負數寫為其補碼形式(在此不議),然後再根據二進制轉換其它進制的方法進行。

例:要求把-9轉換為八進制形式。則有:

-9的補碼為1111 1111 1111 0111。從後往前三位一劃,不足三位的加0

111---->7

110---->6

111---->7

111---->7

111---->7

001---->1

然後我們將結果按從下往上的順序書寫就是:177767,那麼177767就是十進制數-9的八進制形式。

其實轉化成任意進制都是一樣的。

『伍』 如何用c語言編寫二進制和十進制之間的轉換

二進制轉十進制
n
為輸入的二進制數,d用來處理該數。
k為標志位,當k為1時表示輸入的數有問題,需要重新輸入。
i為每次分解的個位數;j為二進制的權值;m為累計的十進制和;p為輸入的數的位數,超過10時,該數越界,需要重新輸入,定k=1。
程序如下:
#include
<conio.h>
main()
{
long
int
n,d;
int
k,i,j,m,p;
do
{
k=0;
m=0;j=1;i=0;p=0;
printf("\ninput
an
number
only
includes
0
or
1:");
scanf("%ld",&n);
if(n<0)
k=1;
d=n;
while(d)
{
i=d%10;p++;
if(i>1
||
p>10)
{k=1;break;}
m+=i*j;
j=j*2;
d/=10;
}
}
while(k==1
||
m==0);
printf("\n
the
number
is
%d\n",m);
getch();
}

『陸』 C語言 二進制轉換成十進制

#include<stdio.h>
#include<string.h>
int main()
{
int n,a[20],num=0,i,j;
scanf("%d",&n);
printf("輸入二進制:\n");
for(i=1;i<=n;i++)
{
scanf("%s",a);
for(j=strlen(a)-1; j>=0; j--)
{
num*=2;
num+=a[i]-'0';
}
printf("%d\n", num);
}
return 0;
}

『柒』 用C語言編寫二進制轉換十進制的程序。

1、為了完成進制的轉換,在主函數中聲明了個函數Sum,主要用於將二進制的每一位轉換為十進制後的數相加,返回值就是相加後的和。另外定義了一個數組array[8],用於存放輸入的八位二進制數。

『捌』 編程 c語言二進制怎麼轉化為十進制

int fun(int j);
void main()
{
int i;
char Binary[100];
cout << "請輸入要轉化為10進制的2進制數" << endl;
cin >> Binary;
char * p = Binary;
i = strlen(Binary) - 1;
int Dec = 0;
int j = 0;
while (i >= 0)
{
Dec = Dec + (*(p + i) - 48 )* fun(j);
j++;
i--;
}
cout << Dec << endl;
}
int fun(int j)
{
int JI = 1;
for(int i = 0; i < j; i++)
{
JI = JI * 2;
}
return JI;
}

這個是比較簡單易懂的函數,看看吧。當然可以用另一種方法,就是新手會比較容易暈。

熱點內容
sql資料庫導入數據 發布:2025-01-21 09:25:21 瀏覽:419
zynqsdk修改編譯選項 發布:2025-01-21 09:22:30 瀏覽:874
存儲器部件教學實驗 發布:2025-01-21 09:14:06 瀏覽:178
php安裝memcached擴展 發布:2025-01-21 09:07:06 瀏覽:545
手機緩存視頻到電腦上 發布:2025-01-21 09:07:02 瀏覽:977
如果知道伺服器ip有什麼風險 發布:2025-01-21 09:06:58 瀏覽:524
在壓縮曲線 發布:2025-01-21 09:05:31 瀏覽:909
華山演算法 發布:2025-01-21 08:44:48 瀏覽:366
如何在微信上再設置一個密碼 發布:2025-01-21 08:44:39 瀏覽:731
浙江伺服器搭建雲主機 發布:2025-01-21 08:41:38 瀏覽:452