二进制转化为十进制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。