求C语言大佬解答,怎麼写一个二进制和十进制相互转换的程序,要求如下

kuaidi.ping-jia.net  作者:佚名   更新日期:2024-08-01
c语言把二进制数转换成十进制数的程序怎么写。

按照如下步骤即可用C语言把二进制数转换成十进制数的程序:
1、首先在主函数中设置成函数Sum,另外定义了一个数组array[8],用于存放输入的八位二进制数。

2、然后使用了一个for循环语句,用于输入八位二进制数。在scanf函数里,在%d之间加一个1,然后使用printf函数输出,并且调用Sum函数,数组名作为实参。

3、在Sum函数中,声明了一个power函数,在这里n为指数,term为每一位数转换为十进制后的的数,如1*(2*2),sum为总和。

4、然后使用一个for循环语句,i用于控制循环的次数,n从最高的指数7开始每次循环减一,如果指数大于或等于零的,就进行循环,调用power函数时,将n作为实参,最后将和返回。


5、在power函数中,如果b等于零,即指数为零,则返回1,否则就进入一个循环,j用于控制循环次数。

6、最后看一下运行结果,这个C语言程序既可以把二进制数成功转换成十进制数了。

需要准备的材料分别有:电脑、C语言编译器。
1、首先,打开C语言编译器,新建一个初始.cpp文件,例如:test.cpp。

2、在test.cpp文件中,输入C语言代码:int a = 0b10000001;printf("%d", a);。

3、编译器运行test.cpp文件,此时输入的8位二进制数被成功用十进制进行了输出。

(1)BinToDec函数代码如下:

unsigned int BinToDec(char *s) {

    unsigned int num = 0, base = 1;

    int i, n = strlen(s);

    for (i = n - 1; i >= 0; i--) {

        num += base * (s[i] - '0');

        base <<= 1;

    }

    return num;

}

(2)DecToBin函数代码如下:

char *DecToBin(unsigned int num) {

    char *s = (char *)malloc(32 * sizeof(char));

    memset(s, 0, sizeof(s));

    char c;

    int len = 0, i, j;

    while (num) {

        s[len++] = '0' + (num % 2);

        num >>= 1;

    }

    for (i = 0, j = len - 1; i < j; i++, j--) { // 翻转字符串

        c = s[i];

        s[i] = s[j];

        s[j] = c;

    }

    return s;

完整代码和运行结果如下:

输出符合示例,望采纳~



  • 求C语言大佬解答,怎麼写一个二进制和十进制相互转换的程序,要求如下
    答:int len = 0, i, j;while (num) { s[len++] = '0' + (num % 2);num >>= 1;} for (i = 0, j = len - 1; i < j; i++, j--) { // 翻转字符串 c = s[i];s[i] = s[j];s[j] = c;} return s;} 完整代码和运行结果如下:输出符合示例,望采纳~
  • C语言中怎样输出二进制?
    答:1,C语言没有直接输出二进制的方法。2,八进制在输出的时候以0开头,例如:0123十进制的83 3,十进制正常输出,无特别表示。4,十六进制在输出的时候以0X或者0x开头,例如0x123 十进制的291。
  • C语言中定义一个二进制变量是哪个关键字?
    答:在C语言中,二进制变量通常被称为位(bit)变量,它们只有两个可能的值,即0和1。要声明一个位变量,可以使用关键字"unsigned",加上关键字"char"(表示字符类型)或"int"(表示整数类型),并在变量名后面加上一个冒号和位数。例如:```c unsigned char my_bit: 1; // 定义一个单个二进制变...
  • C语言中怎样输出一个二进制的数?
    答:int main() {printBinary(22);//括号里面可以填上你要输出的整数,比如要输出22的二进制形式return 0;}void printBinary()//自定义一个函数printBinary {int temp = sizeof(number)-1;// 定义一个变量 :如果你的编译器是32位的,也就是int temp = 31;while(temp >= 0) // temp 是...
  • c语言中的二进制字符是怎么表示的呢?
    答:c语言中没有表示二进制的字符,但是你可以根据十进制、八进制或者十六进制转换一下。可以利用短除法,将十进制转变成二进制,我们一般的思路是这样的,下面给出一个例子:把20转换成二进制:20/2=10...余数为0 最低位10/2=5...余数为05/2=2...余数为12/2=1...余数为01/2=0...余...
  • C语言怎么定义一个二进制数
    答:C语言中没有 “二进制数”这种类型,所以没办法直接定义;但可以直接定义16进制数。例:int main(){ int a;scanf("%p",&a);//16进制数输入%p是输入一个十六进制的数scanf("%llx",&a);也可以输入十六进制并且比较正规 printf("%d",a);//十进制输出%d是输出一个十进制的数 printf("0x%x",...
  • C语言二进制数怎么写?
    答:c语言中没有二进制的格式输出符号.你可以用itoa函数很方便的将一个10进制int转变成二进制字符串.如:int i;char s[128];scanf("%d",&i);itoa(i, s, 2); /*3个参数,第一个是待转换的数,第二个是存放转换后的字符串,第三个即需要转换的进制*/ printf("该数转换为二进制是: [%s]\n...
  • C语言中如何给一个变量赋一个二进制数
    答:二进制没有表示方法。 C系列语言中,通常想要以二进制操作的时候,我们叫它位操作,所以使用移位运算符“<<” x<<1 = x *2 x<<2 = x *4 x<<3 = x *8 移位就是这个意思,想进行二进制赋值的时候,需要一位一位进行赋值 比如你想赋值"11001" int a; a = (1<<4) + (1<<3) +...
  • 在c语言中,创建一个二进制文件,最大为4M,将若干个小文件写到这个文件...
    答:自己做一个文件头,记录每个文件的大小#include<stdio.h>long GetFileSize(FILE *fp){ fseek(fp,0,SEEK_END); return ftell(fp);}void WriteToFile(FILE *mainFile,FILE *subFiles[],size_t fileCount){ //文件头 : 文件数量+每个文件的大小 char buff[1024]; int fi...
  • 怎用C语言求一个数的二进制
    答:用栈实现,用520除2把所得余数进栈,把商作为新的数除2,再把余数进栈,取商为新的数,如此往复直到商为1为止,然后把栈中的数依次输出后的1、0组合即为所求数的二进制数。具体的代码不便粘贴,有兴趣欢迎交流