當前位置:首頁 » 編程語言 » c語言中2進制字元串轉10進制
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言中2進制字元串轉10進制

發布時間: 2022-11-17 00:14:37

『壹』 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語言怎麼寫 實現2進制轉成10進制

按照樓主的意思,應該是2機制格式表示的字元串,轉成10進制格式的字元串
(否則,都是數值的話,不需要轉。把它看成2進制或10進制,都可以)
所以,該功能分兩部分
1,把2進製表示的字元串,轉換成數值
2,把數值轉換成10進製表示的字元串

『叄』 c語言編程 將輸入的2進制字元串轉換為10進制數輸出

數組s已經定義長度,strlen的結果就是100,另外換算的時候語句可以優化

『肆』 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;
}

『伍』 C語言,利用函數實現將二進制數轉化為十進制數並實現相加。

1、2進制10進制的轉換方法:
二進制數1101轉十進制:
1×2的三次冪+1×2的二次冪+0×2的一次冪+1×2的零次冪=8+4+0+1=13
附加一個八進制轉十進制的例子吧:
507(八進制轉10進制):
5×8的2次冪+0×8的1次冪+7×8的0次冪=
5×64+0×8+7×1=327(10進制)

2、常式:

#include"stdio.h"
doubleBtoD(charB[])
{
doubled=0;//轉為十進制數的中間結果變數
inti=0;//當前求到了二進制數的位置
while(B[i++]!='')//當沒有到二進制數結束時,一直循環
{
d=d*2+B[i-1]-Ɔ'//求出每個二進制位的位權(從高位到低位,所以每求一位,先前的都應變為原來的2倍),累加到中間結果
}
returnd;//返回最終結果
}
intmain()
{
charb1[20],b2[20];//定義兩個二進制數字元串
scanf("%s%s",b1,b2);//輸入兩個字元串
printf("%.0lf",BtoD(b1)+BtoD(b2));//輸出兩個二進制數轉為十進制數後的和
}

『陸』 C語言將二進制數字轉化為十進制數

n = n * 2 + p[i] - '0';

『柒』 如何用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語言 二進制數轉化為十進制數

思路:十進制整數轉換為二進制整數採用"除2取余,逆序排列"法。即用2整除十進制整數,可以得到一個商和余數;再用2去除商,又會得到一個商和余數,如此進行,直到商為0時為止,然後把先得到的余數作為二進制數的低位有效位,後得到的余數作為二進制數的高位有效位,依次排列起來。

參考代碼:

#include"stdio.h"
voidfun(intn){
if(n==0)return;
fun(n/2);
printf("%d",n%2);
}
intmain(){
intn;
scanf("%d",&n);
fun(n);
return0;
}
/*
運行結果:例如求10的2進制
10
1010
*/

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

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