具体代码如下,欢迎学习交流
#include <stdio.h>
#include < stdlib.h >
#include <math.h>
#define MAXBINNUMBIT 64 //二进制数最大位数
unsigned getbits(unsigned x, int p, int n); //定义getbits :返回X中第P开始的N位
int bintoDec(int x, char p[]); //定义 bintodec: 二进制数转换十进制函数
int main(void) {
char s[MAXBINNUMBIT]; // 保存二进制数的字符数组
char gb[MAXBINNUMBIT];
int binnum = 0; //binnum二进制数实际值
scanf("%s", &s);
binnum = bintoDec(binnum, s);
printf("%d\n", binnum);
//stdlib标准库里将十进制数转换成不同进制数组的函数itoa
//itoa(要转换的数,转换结果保存的字符数组,转换进制)
itoa(binnum, gb, 2);
printf("%s",gb);
}
int bintoDec(int x, char p[]) {
int i,b; //b记录字符数组位数
for (b = 0; p[b] != '\0'; b++) {
;
}
for (i = 0; i <= b; i++) {
if (p[i] != '0')
x = (int)x + pow(2, (b - i - 1)); //转换二进制的算法
}
return x;
}