找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 8131|回复: 15
打印 上一主题 下一主题
收起左侧

怎么把数组里8位二进制转换成16进制

  [复制链接]
回帖奖励 5 黑币 回复本帖可获得 5 黑币奖励! 每人限 1 次
跳转到指定楼层
#
ID:404720 发表于 2018-12-4 22:59 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
比如我现在有数组a[8]={0,1,0,0,1,1,1,0};
那么怎么把他们转换成一个16进制数 0X??呢谢谢
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

15#
ID:442260 发表于 2018-12-11 13:12 | 只看该作者
本帖最后由 Eureka!Eureka! 于 2018-12-11 17:01 编辑

可以先装换为10进制,在通过取整和取余获得16进制的高位和低位
for(i=0;i<8;i++)
{
dec=dec+a[7-i]*(2^(7-i));//换成10进制
}
hexhigh=dec/16;//取16进制高位
hexlow=dec%16//取16进制低位
回复

使用道具 举报

14#
ID:443129 发表于 2018-12-10 11:01 | 只看该作者
取四合一,从右向左开始转换,不足时补0
回复

使用道具 举报

13#
ID:443011 发表于 2018-12-10 09:09 | 只看该作者
uint8_t  i,  hex = 0;
回复

使用道具 举报

12#
ID:375161 发表于 2018-12-9 21:34 | 只看该作者
楼主的意思因该是把数组看作二进制数。可以 用这个办法,先定义一个二位的16进制数初始化位0x00,然后将a每一位左移(<<)到目标位上,然后按位或(|)。
回复

使用道具 举报

11#
ID:375161 发表于 2018-12-9 21:25 | 只看该作者
楼主的意思是,把a【8】看作 二进制的01001110吗?如果是这样,
回复

使用道具 举报

10#
ID:424572 发表于 2018-12-5 15:29 | 只看该作者
8位2进制 最好是记住,4位一组,直接记住8421就行,比如1101 0001,高4位1101=8+4+0+1=13=D,低4位0001=1,,即0xD1
回复

使用道具 举报

9#
ID:424572 发表于 2018-12-5 15:25 | 只看该作者
八位二进制0000
回复

使用道具 举报

8#
ID:439417 发表于 2018-12-5 11:21 | 只看该作者
十进制和16进制是一样,只是表现方式不一样而已,可以先%10,后/10,将/10的后所得1,2,3,4,5,6分别赋予a,b,c,d,e,f
回复

使用道具 举报

7#
ID:438216 发表于 2018-12-5 10:14 | 只看该作者
这二进制数为01001110的话,转换成16进制是0X4E
回复

使用道具 举报

6#
ID:439778 发表于 2018-12-5 09:45 | 只看该作者
通过位移形式判定
回复

使用道具 举报

5#
ID:199427 发表于 2018-12-5 09:27 | 只看该作者
uint8_t  i,  hex = 0;

for (i=0;  i<8;  i++)
    hex = hex + a[i]<<(7-i);
回复

使用道具 举报

地板
ID:434807 发表于 2018-12-5 09:01 | 只看该作者
转化的方法是从后面往前数,每四位分开,不足填0,然后是8 4 2 1,一一对应,如果是一则加上,如果是零则不记,然后相加得到10进制数,然后在转化成16进制。
回复

使用道具 举报

板凳
ID:434807 发表于 2018-12-5 08:57 | 只看该作者
额,这个不明白是什么意思,如果说二进制数为01001110,转换成16进制是ox4e
回复

使用道具 举报

沙发
ID:410399 发表于 2018-12-5 08:29 | 只看该作者
按位与上0xFF
回复

使用道具 举报

楼主
ID:213173 发表于 2018-12-5 08:09 | 只看该作者
Keil编辑器不支持定义位变量数组,所以你的问题根本就不存在。如果是想把unsigned char数组中8个元素的最低位重新组合成1个字节倒是可以的。之于用16进制或10进制表述本质是一回事。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表