二進制轉化為十進制c語言
① C璇璦 鎬庢牱灝嗕簩榪涘埗鏁拌漿鎹㈡垚鍗佽繘鍒,鍙堟庢牱灝嗗嶮榪涘埗鏁拌漿鎹㈡垚浜岃繘鍒舵暟杈撳嚭
灝嗕簩榪涘埗鏁拌漿鎹㈡垚鍗佽繘鍒訛紝涓鑸鏄浠庡瓧絎︿覆杞鎹㈡垚涓涓鏁存暟錛屾寜浣嶅間箻浠ユ潈鍊肩浉緔鍔犲緱鍒扮粨鏋溿
濡傦細1010=1*2^3+0*2^2+1*2+0 =錛堬紙錛堬紙1*2錛+0錛*2錛+1錛*2+0
灝嗗嶮榪涘埗鏁拌漿鎹㈡垚浜岃繘鍒舵暟錛岄噰鐢ㄧ殑鍘熺悊灝辨槸杈楄漿闄2錛岄嗗悜杈撳嚭浣欐暟銆傦紙windows緋葷粺涓嬬殑itoa鍑芥暟涔熸槸涓涓涓嶉敊鐨勯夋嫨錛屼絾DIY鏇存湁鎰忎箟錛
瀹炵幇鏂規硶錛
#include<stdio.h>
voidswap(char*a,char*b)
{
chart=*a;
*a=*b;
*b=t;
}
char*reverse(char*s,intlen)
{
char*b=s,*e=s+len-1;
while(b<e)
{
swap(b++,e--);
}
returns;
}
char*dec2bin(n)
{
staticcharstr[33];
inti=0;
do{
str[i++]=n%2+'0';
n/=2;
}while(n);
str[i]=0;
returnreverse(str,i);
}
intbin2dec(char*s)
{
inti,n=0;
for(i=0;s[i];i++)
n=n*2+s[i]-'0';
returnn;
}
voidmain()
{
intn=100;
char*p;
p=dec2bin(n);
printf("%d(D)=%s(B) ",n,p);
n=bin2dec(p);
printf("%s(B)=%d(D) ",p,n);
}
榪愯岀粨鏋滐細
100(D)=1100100(B)
1100100(B)=100(D)
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;
}
這個是比較簡單易懂的函數,看看吧。當然可以用另一種方法,就是新手會比較容易暈。
③ c璇璦灝2榪涘埗杞鍖栦負10榪涘埗鐨勪竴鑸鏂規硶錛屼笉瑕佺粰鎴戠紪紼嬶紝璁叉柟娉
鎸夋潈鍊肩瘡鍔犲嵆鍙錛屾瘮濡1101 1101榪欎釜浜岃繘鍒舵暟
閭d箞瀵瑰簲鐨勬潈鍊煎氨鏄128 64 32 16 8 4 2 1
杞鎹涓哄嶮榪涘埗灝辨槸1*128+1*64+0*32+1*16+1*8+1*4+0*2+1*1
涔熷氨鏄瀵瑰簲浣嶄箻浠ュ瑰簲鏉冨礆紝鐒跺悗緔鍔
④ c語言把二進制數轉換成十進制數的程序怎麼寫。
需要准備的材料分別有:電腦、C語言編譯器。
1、首先,打開C語言編譯器,新建一個初始.cpp文件,例如:test.cpp。