c语言二进制如何转换十进制
周琼 2023-07-07编程经验
什么是二进制在一个比特(bit)中只有两种可能的值,一种是0,另一种是1。我们通常称这种值为二进制。二进制是计算机中非常有用的一种数字系统,因为计算机只能以二进制的形式处理数字。在计算机世
什么是二进制
在一个比特(bit)中只有两种可能的值,一种是0,另一种是1。我们通常称这种值为二进制。二进制是计算机中非常有用的一种数字系统,因为计算机只能以二进制的形式处理数字。在计算机世界中,二进制诠释为一系列的电信号和器件开关状态。
#includeint main() { int num = 0b1010; // 通过前缀0b表示该值是二进制 printf("%d", num); // 输出结果为10 }
二进制转化为十进制
将二进制数转换为十进制数有很多方法,其中一个常用的方法就是乘法法。将二进制数拆分为每一位上的数字,然后按位权计算,最后将所有位的计算结果相加即可得到十进制数。
#include#include int binaryToDecimal(long long n) { int decimal = 0; int p = 0; while (n != 0) { decimal += (n % 10) * pow(2, p); ++p; n /= 10; } return decimal; } int main() { long long binary; printf("请输入一个二进制数: "); scanf("%lld", &binary); printf("十进制数为: %d", binaryToDecimal(binary)); }
二进制转化为十进制-位运算
算法步骤与乘法法类似,只不过是通过位运算来实现。对于一个二进制数,从右往左依次遍历每一位,如果该位是1,就将2的n次方加入到十进制数的结果中,n表示该位的位权,否则就不做处理。位运算的效率相比乘法法更高,因为运算速度更快。
#includeint binaryToDecimal(int n) { int decimal = 0, p = 0; while (n != 0) { if (n % 10 == 1) { decimal += 1 << p; } ++p; n /= 10; } return decimal; } int main() { int binary; printf("请输入一个二进制数: "); scanf("%d", &binary); printf("十进制数为: %d", binaryToDecimal(binary)); }
十进制转化为二进制
将十进制数转化为二进制数也有多种方法,最常用的方法是将该数不断地除以2,将每次的余数逆序排列就是其对应的二进制数。与二进制转化为十进制的乘法法相似,这种方法也有一种叫做除2取余法的算法。
#includeint decimalToBinary(int decimal) { int binary = 0, p = 1; while (decimal != 0) { binary += (decimal % 2) * p; p *= 10; decimal /= 2; } return binary; } int main() { int decimal; printf("请输入一个十进制数: "); scanf("%d", &decimal); printf("二进制数为: %d", decimalToBinary(decimal)); }
很赞哦! ()