在本文中,我们将学习如何编写 C 程序将给定的二进制数转换为等效的十进制数。二进制数以基数 2 ( 0, 1 ) 表示,十进制数以基数 10 ( 0-9 ) 表示。
将二进制数转换为十进制的算法
- 这个想法是通过执行模运算( % )提取二进制数的最后一位并将其存储在变量中last_digit并除以 10 从二进制数中删除最后一位数字。
- 通过乘法更新小数值last_digit与当前的基值并将其添加到dec_value。
- 通过将基值乘以 2 来更新基值,以表示下一个数字的下一个 2 的幂。
- 重复这些步骤,直到处理完二进制数的所有数字。
- 返回存储十进制值的变量dec_value。
下图解释了如何将 (1010) 转换为等效的十进制值:
将二进制数转换为十进制的 C 程序
C
// C program to convert binary to decimal
#include <stdio.h>
// Function to convert binary to decimal
int binaryToDecimal(int n)
{
int num = n;
int dec_value = 0;
// Initializing base value to 1, i.e 2^0
int base = 1;
int temp = num;
// Extracting the last digit of the binary number
while (temp) {
int last_digit = temp % 10;
// Removing the last digit from the binary number
temp = temp / 10;
// Multiplying the last digit with the base value
// and adding it to the decimal value
dec_value += last_digit * base;
// Updating the base value by multiplying it by 2
base = base * 2;
}
// Returning the decimal value
return dec_value;
}
// Driver program
int main()
{
int num = 10101001;
printf("%d", binaryToDecimal(num));
}
输出
169
复杂性分析
- 时间复杂度:O(logn)
- 辅助空间:O(1)
Note: In the above program, we represented a binary number as integer value with base 10 as binary numbers are not directly supported by C language.
请参阅完整文章二进制到十进制转换程序更多细节!
相关文章
相关用法
- C语言 Beep()用法及代码示例
- C语言 Atoi()用法及代码示例
- C语言 Getchar()用法及代码示例
- C语言 abs()用法及代码示例
- C语言 printf() and scanf()用法及代码示例
- C语言 strchr()用法及代码示例
- C语言 strcpy()用法及代码示例
- C语言 strcat()用法及代码示例
- C语言 宏 assert()用法及代码示例
- C语言 isdigit()用法及代码示例
- C语言 islower()用法及代码示例
- C语言 setlocale()用法及代码示例
- C语言 cos()用法及代码示例
- C语言 cosh()用法及代码示例
- C语言 sin()用法及代码示例
- C语言 sinh()用法及代码示例
- C语言 tanh()用法及代码示例
- C语言 exp()用法及代码示例
- C语言 ldexp()用法及代码示例
- C语言 log()用法及代码示例
- C语言 log10()用法及代码示例
- C语言 pow()用法及代码示例
- C语言 sqrt()用法及代码示例
- C语言 ceil()用法及代码示例
- C语言 fabs()用法及代码示例
注:本文由纯净天空筛选整理自佚名大神的英文原创作品 Convert Binary to Decimal in C。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。