找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3490|回复: 9
收起左侧

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

[复制链接]
ID:796670 发表于 2020-8-12 18:02 | 显示全部楼层 |阅读模式
本帖最后由 明日香 于 2020-8-12 18:18 编辑

比如说数组a[1]=0x45H,我想把后两位这个4,5提取出来为整数,这个程序应该怎么写呢?谢谢
回复

使用道具 举报

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.
回复

使用道具 举报

ID:420836 发表于 2020-8-13 09:00 | 显示全部楼层
将AND操作与0x00FF一起使用以提取最后两个十六进制数字。
回复

使用道具 举报

ID:235200 发表于 2020-8-13 09:10 | 显示全部楼层
0x12345按位与0xff,等于0x00045,这句是错误的,请纠正
回复

使用道具 举报

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

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

使用道具 举报

ID:744327 发表于 2020-8-13 09:20 | 显示全部楼层
将数组的元素提取出来,可以用分离的方法提取
回复

使用道具 举报

ID:213173 发表于 2020-8-13 09:36 | 显示全部楼层
unsigned int c;
unsigned char a,b;
分解
a=c;
b=c>>8;
合并
c=b<<8|a;
回复

使用道具 举报

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 单片机教程网

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