当前位置:首页 > 编程笔记 > 正文
已解决

数组存放二进制,转十进制(C实现)

来自网友在路上 163863提问 提问时间:2023-09-28 15:56:13阅读次数: 63

最佳答案 问答题库638位专家为你答疑解惑

假设二进制:11010000,存放在数组a[] = {1,1,0,1,0,0,0,0}中,且这个二进制低位放在高位(暂理解为小端序),要将这个数组里的二进制转为十进制。实现如下:

#include <stdio.h>
#include <string.h>
#include <math.h>int main() {char a[] = {1,1,0,1,0,0,0,0};char b[sizeof(a)];char c[sizeof(a)];/**** 数组b存放倒序排列的数组a ********/// 复制原始数组到新数组memcpy(b, a, sizeof(a));// 计算数组的中间位置int mid = sizeof(a) / 2;// 交换元素for (int i = 0; i < mid; i++) {char temp = b[i];b[i] = b[sizeof(a) - i - 1];b[sizeof(a) - i - 1] = temp;}// 打印结果for (int i = 0; i < sizeof(b); i++) {printf("%d", b[i]);}/**** 数组b元素转成十进制********/int decimal = 0;int size = sizeof(a) / sizeof(a[0]);for (int i = 0; i < size; i++) {decimal += b[i] * pow(2, size - i - 1);}printf("\n");printf("The decimal value of the binary array is %d\n", decimal);return 0;
}

查看全文

99%的人还看了

猜你感兴趣

版权申明

本文"数组存放二进制,转十进制(C实现)":http://eshow365.cn/6-15264-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!