十进制转换为二进制c语言代码,怎么做?

如题所述

有这个必要吗?
char s[100]="13225";//10进制字符串
char s[100]="\x1\x3\x2\x2\x5";//BCD表示的10进制字符串
char s[100]={1,3,2,2,5};//BCD表示的10进制字符数组
char b[100];//2进制字符串
char d[100];//10进制字符串
int n=atoi(s); //n是2进制整数,计算机内所有数据,都是2进制的!
printf("%d",n);//2进制整数直接以10进制输出

printf("%s",itoa(n,b,2));//2进制整数转换为2进制字符串输出
printf("%s",itoa(n,d,10));//2进制整数转换为10进制字符串输出
char *a=s;

//10进制字符串转换为BCD表示的10进制字数组

while(*a)
{ *a -='0';
a ++;
}
a=s;
//BCD表示的10进制字数组转换为10进制字符串
for(i=0,a=s;i<n;i++)

{

a[i]+='0';
}
a[i]='\0';
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-01-22
采用递归算法来转换
#include <stdio.h>void to_binary(unsigned long n);
int main(void)
{
unsigned long number;
printf("Enter an interger(q to quit):\n");
while (scanf("%ul",&number)==1)
{
printf("Binary equivalent:");
to_binary(number);
putchar('\n');
printf("Enter an interger(q to quit):\n");
}
printf("Done.\n");

return 0;}
void to_binary(unsigned long n)
{
int r;
r=n%2;
if(n>=2)
to_binary(n/2);
putchar('0'+r);

return;}
第2个回答  推荐于2018-03-30
void CANNGE(int X)
{
int i;
for(i = 1;i <= N;i++){
if((1 << N - i) & X)printf("1");
else printf("0");
}
}

int main(void)
{
int x;
scanf("%d",&x);
CANNGE(x);
return 0;
}本回答被网友采纳
第3个回答  2013-01-22
#include <stdio.h>
#include <limits.h>
void dec_to_bin(const int a) //输出传入的int整数a的二进制位
{
unsigned int mask=1<<(sizeof(a)*CHAR_BIT-1);
int i;
for ( ; mask; mask>>=1) {
printf(mask<<i&a?"1":"0");
}
}

int main(int argc,char *argv[])
{
int a;
printf("%d-bit DEC:",sizeof(a)*CHAR_BIT);
scanf("%d",&a);
printf("%d-bit BIN:",sizeof(a)*CHAR_BIT);
dec_to_bin(a);
return 0;
}

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网