arrays - 将表示二进制数的整数数组转换为十进制数
问题描述
我有一个表示二进制数的整数数组。我需要将其转换为等效的十进制整数。有人可以帮帮我吗?
int octet[8] = {0, 1, 0, 0, 1, 0, 1, 0};
我想返回十进制等值,在这种情况下为74 。
解决方案
这是您如何执行此类操作的示例:
#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);
}
推荐阅读
- node.js - EmailJS 两次调用回调
- android - 房间不更新
- python - Audio isn't loading
- java - Java 8 File.java 源代码中的 DefaultFileSystem 是什么?
- r - 如何在R中的一行代码中重命名列的变量
- node.js - 如何在 Node.js 或 Swift 的 url 中挂载主机前缀?
- python - sqlite3.OperationalError:靠近“%”:语法错误
- r - 线性规划问题的设置:R 中的 lpSolve
- c# - InsertMenuItem 将字符串截断为第一个字符
- python - 为什么我的素数分解器没有终止?