C语言编程练习之二进制与十进制相互转换

二进制转换为十进制:

#include <stdio.h>
#include <math.h>
int main()
{
    long long x;
    printf("输入一个二进制数:\n");
    scanf("%lld", &x);
    int b=convert(x);
    printf("二进制数 %lld 转换为十进制为 %d", x, b);
    return 0;
}
 
int convert(long long x)
{
    int decimalNumber = 0, i = 0, j;
    while (x!=0)
    {
        j = x%10;
        x /= 10;
        decimalNumber += j*pow(2,i);
        ++i;
    }
    return decimalNumber;
    } 

结果如下:
在这里插入图片描述
十进制转换为二进制:
思路:根据十进制转换为二进制的数学计算步骤和特点编程,十进制数不断除2取余数,最后组合形成二进制数。

#include <stdio.h>
#include <math.h>
int main()
{
    int x;
    printf("输入一个十进制数: ");
    scanf("%d", &x);
    printf("十进制数 %d 转换为二进制位 %lld", x, convert(x));
    return 0;
}
long long convert(int x)
{
    long long binaryNumber = 0;
    int remainder, i = 1;
 
    while (x!=0)
    {
        remainder = x%2;
        x=x/2;
        binaryNumber += remainder*i;
        i = i*10;
    }
    return binaryNumber;
}

结果如下:
在这里插入图片描述


版权声明:本文为RDJE56523原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。