首页 > 解决方案 > 将表示二进制数的整数数组转换为十进制数

问题描述

我有一个表示二进制数的整数数组。我需要将其转换为等效的十进制整数。有人可以帮帮我吗?

int octet[8] = {0, 1, 0, 0, 1, 0, 1, 0};

我想返回十进制等值,在这种情况下为74 。

标签: arrayscbinarydecimal

解决方案


这是您如何执行此类操作的示例:

#include <stdio.h>                                                                                                                                      
                                                                            
int main()                                                                      
{                                                                               
                                                                            
    int octet[] = {0, 1, 0, 0, 1, 0, 1, 0};                                    
    int *p = octet;                                                             
    int len = sizeof(octet) / sizeof(octet[0]); // 8                                                                
    unsigned result = 0;                                                        
                                                                                
    while(len--) result = (result<<1) | *p++;                                   
    /* 74 */                                                                     
    printf("%u\n", result);                                                     
                                                                                
}                   

推荐阅读