已解决
数组存放二进制,转十进制(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 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!
- 上一篇: VC++判断程序是否已经运行;仅运行一次
- 下一篇: 支付宝电脑网站支付,支付退款