当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


C语言 Binary转Decimal用法及代码示例


在本文中,我们将学习如何编写 C 程序将给定的二进制数转换为等效的十进制数。二进制数以基数 2 ( 0, 1 ) 表示,十进制数以基数 10 ( 0-9 ) 表示。

将二进制数转换为十进制的算法

  • 这个想法是通过执行模运算( % )提取二进制数的最后一位并将其存储在变量中last_digit并除以 10 从二进制数中删除最后一位数字。
  • 通过乘法更新小数值last_digit与当前的基值并将其添加到dec_value。
  • 通过将基值乘以 2 来更新基值,以表示下一个数字的下一个 2 的幂。
  • 重复这些步骤,直到处理完二进制数的所有数字。
  • 返回存储十进制值的变量dec_value。

下图解释了如何将 (1010) 转换为等效的十进制值:

binary to decimal in c

将二进制数转换为十进制的 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.

请参阅完整文章二进制到十进制转换程序更多细节!

相关文章



相关用法


注:本文由纯净天空筛选整理自佚名大神的英文原创作品 Convert Binary to Decimal in C。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。