如果通过算法实现十进制对二进制的转换,十进制对八进制可以在输出格式的时候加上%o 而不能对二进制进行转换.请帮忙写个十进制对二进制进行转换的c语言程序.
æè·¯ï¼åè¿å¶æ´æ°è½¬æ¢ä¸ºäºè¿å¶æ´æ°éç¨"é¤2åä½ï¼éåºæå"æ³ãå ·ä½åæ³æ¯ï¼ç¨2æ´é¤åè¿å¶æ´æ°ï¼å¯ä»¥å¾å°ä¸ä¸ªååä½æ°ï¼åç¨2å»é¤åï¼åä¼å¾å°ä¸ä¸ªååä½æ°ï¼å¦æ¤è¿è¡ï¼ç´å°å为0æ¶ä¸ºæ¢ï¼ç¶åæå å¾å°çä½æ°ä½ä¸ºäºè¿å¶æ°çä½ä½ææä½ï¼åå¾å°çä½æ°ä½ä¸ºäºè¿å¶æ°çé«ä½ææä½ï¼ä¾æ¬¡æåèµ·æ¥ã
åè代ç ï¼
#include<stdio.h>int main()
{
int a,s[20],i=0,rem;
printf("请è¾å ¥æ´æ°:\n");
scanf("%d",&a);
while(a){
rem=a%2;
a=a/2;
s[i++]=rem;
}
printf("è¾åºçäºè¿å¶ï¼");
while(i>0)
printf("%d",s[--i]);
printf("\n");
return 0;
}
/*
è¾åºï¼
请è¾å ¥æ´æ°:
10
è¾åºçäºè¿å¶ï¼1010
*/
温馨提示:答案为网友推荐,仅供参考
第1个回答 2012-03-26
二进制——>十进制
#include<iostream>
using namespace std;
int main()
{
void pb(int n);
int n;
cin>>n;
pb(n);
return 0;
}
void pb(int n)
{
if(n!=0)
{
pb(n/2);
putchar('0'+n%2);
}
}
十进制——>二进制
#include<stdio.h>
int main()
{
int n;
int i;
char a;
scanf("%d",&n);
getchar();
while(n--)
{
i=0;
while((a=getchar())!='\n')
{
i=i*2+(a-48);
}
printf("%d\n",i);
}
return 0;
}本回答被提问者采纳
#include<iostream>
using namespace std;
int main()
{
void pb(int n);
int n;
cin>>n;
pb(n);
return 0;
}
void pb(int n)
{
if(n!=0)
{
pb(n/2);
putchar('0'+n%2);
}
}
十进制——>二进制
#include<stdio.h>
int main()
{
int n;
int i;
char a;
scanf("%d",&n);
getchar();
while(n--)
{
i=0;
while((a=getchar())!='\n')
{
i=i*2+(a-48);
}
printf("%d\n",i);
}
return 0;
}本回答被提问者采纳
第2个回答 2020-12-10
C语言_010_二进制转十进制_上
第3个回答 2012-03-26
#include<iostream>
#include<stack>
#include<string>
using namespace std;
string zhuanhuan(int num,int base)
{
string digitChar="0123456789" ,numStr= "";
stack<char>stk;
do{
stk.push(digitChar[num%base]);
num /= base;
}while(num!=0);
while(!stk.empty())
{
numStr += stk.top();
stk.pop();
}
return numStr;
}
int main()
{
int m , n;
cout<< "请输入要转换的数字:" ;
cin >> m;
cout<< "请输入要转换的进制:";
cin >> n;
cout << "将"<< m << "转换成" << n << "进制后为:" ;
cout << zhuanhuan(m,n) << endl;;
system("pause");
return 0;
}
以上代码能实现任意进制之间的转换!希望对你有帮助!!本回答被网友采纳
#include<stack>
#include<string>
using namespace std;
string zhuanhuan(int num,int base)
{
string digitChar="0123456789" ,numStr= "";
stack<char>stk;
do{
stk.push(digitChar[num%base]);
num /= base;
}while(num!=0);
while(!stk.empty())
{
numStr += stk.top();
stk.pop();
}
return numStr;
}
int main()
{
int m , n;
cout<< "请输入要转换的数字:" ;
cin >> m;
cout<< "请输入要转换的进制:";
cin >> n;
cout << "将"<< m << "转换成" << n << "进制后为:" ;
cout << zhuanhuan(m,n) << endl;;
system("pause");
return 0;
}
以上代码能实现任意进制之间的转换!希望对你有帮助!!本回答被网友采纳
第4个回答 2012-03-26
void convert(unsigned int indata, char* outdata)
{
int i;
for(i= 8*sizeof(unsigned int); i>= 0 ; i--)
{
if(indata & (1 << i)) *outdata++ = '1';
else *outdata++ = '0';
}
*outdata = 0;
}
{
int i;
for(i= 8*sizeof(unsigned int); i>= 0 ; i--)
{
if(indata & (1 << i)) *outdata++ = '1';
else *outdata++ = '0';
}
*outdata = 0;
}