c语言转二进制的函数 c语言利用调用函数十进制转二进制

C语言转换二进制

unsigned int i, j, sum;,改为int i, j, sum;无符号的没有负数,所有i=0永远成立,死循环啦,同学

成都创新互联公司坚持“要么做到,要么别承诺”的工作理念,服务领域包括:成都网站建设、成都做网站、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的岳麓网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!

C语言:怎么将十六进制字符串转换成二进制字符串,谁帮我写个函数

十六进制转成十进制的函数:

//返回16进制字符串s对应的整数值,遇到任何一个非法字符都返回-1。

int

HexToDec(char

*s)

{

char

*p

=

s;

//空串返回0。

if(*p

==

'\0')

return

0;

//忽略开头的'0'字符

while(*p

==

'0')

p++;

int

dec

=

0;

char

c;

//循环直到字符串结束。

while(c

=

*p++)

{

//dec乘16

dec

=

4;

//数字字符。

if(c

=

'0'

c

=

'9')

{

dec

+=

c

-

'0';

continue;

}

//小写abcdef。

if(c

=

'a'

c

=

'f')

{

dec

+=

c

-

'a'

+

10;

continue;

}

//大写ABCDEF。

if(c

=

'A'

c

=

'F')

{

dec

+=

c

-

'A'

+

10;

continue;

}

//没有从任何一个if语句中结束,说明遇到了非法字符。

return

-1;

}

//正常结束循环,返回10进制整数值。

return

dec;

}

十进制转成二进制的函数:

/*递归法求二进制数*/

#include

void

printb(int

x,int

n);

void

main()

{

int

x;

printf("input

number:");

scanf("%d",x);

printf("number

of

decimal

form:

%d\n",x);

printb(x,sizeof(int)*8);

putchar('\n');

}

void

printb(int

x,int

n)

{

if(n0)

{

putchar('0'+(

(unsigned)(x

(1(n-1)

)

)(n-1)));

printb(x,n-1);

}

}

用c语言编写函数把任意十进制数转换成二进制数

/*

输入整数(0结束) : 10

10 = (1010)2

输入整数(0结束) : 127

127 = (1111111)2

输入整数(0结束) : 255

255 = (11111111)2

输入整数(0结束) :

*/

#include stdio.h

#include stdlib.h

char *Converse(char s[],int n) {

int i,ch,m = 0;

while(n) {

s[m] = n%2 + '0';

n /= 2;

++m;

}

s[m] = '\0';

for(i = 0; i m/2; ++i) {

ch = s[i];

s[i] = s[m - 1 - i];

s[m - 1 - i] = ch;

}

return s;

}

int main() {

int num;

char s[20];

while(1) {

printf("输入整数(0结束) : ");

scanf("%d",num);

if(num == 0) break;

if(num 0) num = -num;

printf("%d = (%s)2\n",num,Converse(s,num));

}

system("PAUSE");

return 0 ;

}

请用一个很简单的C语言程序:十进制转换为二进制。

#include "stdio.h"

int main()

{

int n;

int i=0,j;

char str[100]={0};

char output[100]={0};

printf("请输入一个整数:");

scanf("%d",n);

while(n)

{

     str[i]=n%2+'0';

     n=n/2;

     i++;

}

for(j=0;ji;j++)

   output[j]=str[i-1-j];

printf("该整数的二进制表示为:%s\n",output);

}

C语言十进制转二进制

十进制转二进制可以使用库函数itoa。

itoa函数原型:char*itoa(int value,char*string,int radix);

功能:将任意类型的数字转换为字符串。在stdlib.h中与之有相反功能的函数是atoi。

nt value 被转换的整数,char *string 转换后储存的字符数组,int radix 转换进制数,如2,8,10,16 进制等。

扩展资料:

方法

#includestdio.h

int main(void)

{ int i=0,n,a[32];

printf("请输入一个十进制整数.\n");

scanf("%d",n);

while (n0)

{a[i]=n%2;

i=i+1;

n=n/2;  }

printf("十进制整数转换为二进制数是:\n");

for(i--;i=0;i--)

printf("%d",a[i]);

printf("\n");

return 0;}

十进制整数转换为二进制整数的方法:

十进制整数转换为二进制整数采用"除2取余,逆序排列"法。

具体做法是:用2去除十进制整数,可以得到一个商和余数;再用2去除商,又会得到一个商和余数,如此进行,直到商为零时为止,然后把先得到的余数作为二进制数的低位有效位,后得到的余数作为二进制数的高位有效位,依次排列起来。

c语言怎么将十进制转化成二进制

#include stdio.h

void main()

{

//进制转换函数的声明

int transfer(int x);

int x;

printf("请输入一个十进制数:");

scanf("%d",x);

printf("转换成二进制数是:%d\n",transfer(x));

}

int transfer(int x)

{

int p=1,y=0,yushu;

while(1)

{

yushu=x%2;

x/=2;

y+=yushu*p;

p*=10;

if(x2)

{

y+=x*p;

break;

}

}

return y;

}

扩展资料:

(1)二进制转十进制

方法:“按权展开求和”

【例】:

规律:个位上的数字的次数是0,十位上的数字的次数是1,......,依次递增,而十分位的数字的次数是-1,百分位上数字的次数是-2,......,依次递减。

注意:不是任何一个十进制小数都能转换成有限位的二进制数。

(2)十进制转二进制

十进制整数转二进制数:“除以2取余,逆序排列”(除二取余法)

【例】:

89÷2 ……1

44÷2 ……0

22÷2 ……0

11÷2 ……1

5÷2 ……1

2÷2 ……0

1

十进制小数转二进制数:“乘以2取整,顺序排列”(乘2取整法)

参考资料:

百度百科-二进制


当前文章:c语言转二进制的函数 c语言利用调用函数十进制转二进制
文章源于:http://scyanting.com/article/hiiccj.html