如何从一个数组中取出一个16位的数据

2019-07-20 05:20发布

有一个数组A[512],想从它里面每提取16位为一个新的数据,这样子要怎么操作呢?最后提取出来的数据应该是一个数据长度为16的数组B[255]
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
11条回答
edmund1234
1楼-- · 2019-07-21 13:19
数组的定义, 是编译器给你分配了数组所需要的空间, 然后把这空间的地址放在以数组命名的指针去, 所以A是指针, B也是指针
去翻一下有关数组的书引证一下我的讲法吧
edmund1234
2楼-- · 2019-07-21 15:02
本帖最后由 edmund1234 于 2018-11-5 17:18 编辑

其实你不搞多个B出来也行, 直接用A也可以把它转换为u16的数组操作, *((u16*)&A) = 0x1234; 原理是一样的, i必须是偶数
castle
3楼-- · 2019-07-21 16:09
 精彩回答 2  元偷偷看……
castle
4楼-- · 2019-07-21 16:49
 精彩回答 2  元偷偷看……
edmund1234
5楼-- · 2019-07-21 17:08
本帖最后由 edmund1234 于 2018-11-5 17:49 编辑
castle 发表于 2018-11-5 17:34
还有能不能再问你一下,我是串口接收过来的数据,可不可以直接把串口接收的数组u8 USART_RX_BUF; 直接改 ...

你通过什么来接收数据? DMA?还是从USART->DR读出, 如果是后者, 你读出再写到buf时是u8, 把u8写到u16的数组还是要做转换, 只是这次从u16转到u8而已

一周热门 更多>