找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2171|回复: 5
收起左侧

大哥!怎样把 buf16[0]-buf16[3]存到buf8[0]到buf[7];

[复制链接]
ID:275916 发表于 2018-5-29 09:37 | 显示全部楼层 |阅读模式

uint buf16[4];
uchar buf8[20];
怎样把 buf16存到buf8[0]到buf[7];
回复

使用道具 举报

ID:340390 发表于 2018-5-29 10:23 | 显示全部楼层
你是想要把buf16的元素分拆成两个buf8元素是吧?那完全可以用移位运算赋值给buf8
例:
buf8[0]=buf16[0]>>8;
buf8[1]=buf16[0];
因为寄存器位数的问题buf8只会保存buf16的后八位数据,所以高八位就要通过移位来实现读取保存
回复

使用道具 举报

ID:266943 发表于 2018-5-29 10:25 | 显示全部楼层
buf8[0]=buf16[0]&0xff;
回复

使用道具 举报

ID:340384 发表于 2018-5-29 10:28 | 显示全部楼层
ulong Temp;             profile11[7]=(uchar)Temp;           profile11[6]=(uchar)(Temp>>8);           profile11[5]=(uchar)(Temp>>16);           profile11[4]=(uchar)(Temp>>24);
回复

使用道具 举报

ID:266943 发表于 2018-5-29 10:29 | 显示全部楼层

for(int i=0;i<4;i++)
{
buf8[2*i]=buf16[i]&0xff;
buf8[2*i+1]=(buf16[i]>>8)&0xff;
}
回复

使用道具 举报

ID:340396 发表于 2018-5-29 10:35 | 显示全部楼层
buf8[0] = buf16[0]>>8;buf8[1] = buf16[0]&0xff;buf8[2] = buf16[1]>>8;buf8[3] = buf16[1]&0xff;
buf8[4] = buf16[2]>>8;buf8[5] = buf16[2]&0xff;buf8[6] = buf16[3]>>8;buf8[7] = buf16[3]&0xff;
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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