C语言,如何把输入的一个字符串,转换为相应的二进制数?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言,如何把输入的一个字符串,转换为相应的二进制数?相关的知识,希望对你有一定的参考价值。

#include<stdio.h>
void ConvertData(int x,char *s,int n)  int m=0,i,k;
  while ( x )  *s=x%n+'0'; x/=n; s++; m++; 
  *s=0;
  s-=m; for ( i=0;i<=m/2;i++ )  k=s[i];s[i]=s[m-i-1];s[m-i-1]=k; 

void main()  char str[256]; int x;
  printf("请输入十进制数: "); scanf("%d",&x); 
  ConvertData(x,str,2); printf("十进制%d转换成二进制是%s\\n",x,str);

参考技术A 乱停放700字作文

C语言。编写一个程序,输入一个二进制的字符串(长度不超过32),然后计算出相应的十进制整数,并打印。

编写一个程序,输入一个二进制的字符串(长度不超过32),然后计算出相应的十进制整数,并把它打印出来。
  输入格式:输入为一个字符串,每个字符都是’0’或’1’,字符串的长度不超过32。
  输出格式:输出一个整数。
  输入输出样例
  输入样例:
  1101
  输出样例:
  13
我的程序:
#include <stdio.h>
#include <string.h>
int main()

char data[33];
int dota[33];
int i, j, num, len;
gets(data);
len = strlen(data);
for (i = 0; i <= len; i++)


if (data[i] == '1')

dota[i] = (int)data[i] -48;

else if (data[i] == '0')

dota[i] = (int)data[i] - 48;


num = dota[0];
for (j = 1; j <= len; j++)

num = num * 2 + (int)dota[j];

printf("%d", num);


在学数组。请问哪里错了?
有什么简单的方法吗?

参考技术A #include <stdio.h>
#include <string.h>
int main()

char data[33];
int dota[33];
int i, j, num, len;
gets(data);
len = strlen(data);
for (i = 0; i <= len; i++)

dota[i] = (int)data[i] -'0';

num = dota[0];
for (j = 1; j < len; j++)

num = num * 2 + (int)dota[j];

printf("%d\n", num);

//改了一下,自己看吧!不明可以问的!本回答被提问者采纳

以上是关于C语言,如何把输入的一个字符串,转换为相应的二进制数?的主要内容,如果未能解决你的问题,请参考以下文章

C语言怎么把字符串转换为可以用于计算的数字

c语言如何将字符串转为二进制的整型然后保存到整型数组里?

刚学C语言,不太懂。把键盘输入的由数字字符组成的字符串转换为相应的数字。例如把"123"转换为整数123

c语言输入数字转换成2进制字符串原理

C语言 字符串转数字 急急急

C语言如何把一个字符串转换成数字