找回密码
 立即注册

QQ登录

只需一步,快速开始

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

萌新求教,请问如何把一个四位16进制数的后两位提取出来呢?

[复制链接]
跳转到指定楼层
楼主
ID:796670 发表于 2020-8-12 18:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 明日香 于 2020-8-12 18:18 编辑

比如说数组a[1]=0x45H,我想把后两位这个4,5提取出来为整数,这个程序应该怎么写呢?谢谢
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:813499 发表于 2020-8-12 23:14 | 只看该作者
十六进制可不是0-9而已上面还有a-f呢.

我当初是将int类型转成十六进制 String 或者char *类型

然后就可以用String[0]提取字符串第一位,String[1] 取第二位.
回复

使用道具 举报

板凳
ID:235200 发表于 2020-8-13 00:25 | 只看该作者
四位16进制应该写成,a[1]=0x1245;提取4的方法:(a[1]/16)%16; 提取5的方法:a[1]%16
回复

使用道具 举报

地板
ID:748096 发表于 2020-8-13 06:25 | 只看该作者
使用按位与。只要是不是负数,均可以使用按位与0xff,低两位是有效数,高于这两位的都是0。0x12345按位与0xff,等于0x00045,去掉高位无效值后等于0x45.
回复

使用道具 举报

5#
ID:420836 发表于 2020-8-13 09:00 | 只看该作者
将AND操作与0x00FF一起使用以提取最后两个十六进制数字。
回复

使用道具 举报

6#
ID:235200 发表于 2020-8-13 09:10 | 只看该作者
0x12345按位与0xff,等于0x00045,这句是错误的,请纠正
回复

使用道具 举报

7#
ID:235200 发表于 2020-8-13 09:12 | 只看该作者
沧兴电子 发表于 2020-8-13 06:25
使用按位与。只要是不是负数,均可以使用按位与0xff,低两位是有效数,高于这两位的都是0。0x12345按位与0xf ...

我看错了,但不能撤,对不起
回复

使用道具 举报

8#
ID:744327 发表于 2020-8-13 09:20 | 只看该作者
将数组的元素提取出来,可以用分离的方法提取
回复

使用道具 举报

9#
ID:213173 发表于 2020-8-13 09:36 | 只看该作者
unsigned int c;
unsigned char a,b;
分解
a=c;
b=c>>8;
合并
c=b<<8|a;
回复

使用道具 举报

10#
ID:813988 发表于 2020-8-13 21:58 | 只看该作者
a[1]&=0xff
a[1]=a[1]&0xff
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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