gpt4 book ai didi

c - Arinc429 32 位字

转载 作者:行者123 更新时间:2023-11-30 17:18:38 24 4
gpt4 key购买 nike

所以我在工作中开始了一个新项目,引入了很多新概念。

我正在使用 arinc429 USB 盒和 c,需要读取来自缓冲区的信息,这很好,这就是如何处理我之后获得的数据,但我遇到了一些麻烦。

对于缓冲区中的每个数据项,我都会得到 arinc_low 和 arinc_high 无符号长整型,它们都表示十六进制值的结尾和开头。如何获取这两个十六进制值,将它们放在一起并构造 32 位字,以便我可以检索我需要的内容,例如,位 1-8 用于标签等。

到目前为止,我有以下内容:

snprintf(low, 16, "%lx", buffer[i].arinc_low);
snprintf(high, 16, "%lx", buffer[i].arinc_high);

通过它我可以迭代生成的字符:

for(i=0;i<sizeof(low);i++)
{
printf("%d", low[i]);
}

等等。

例如,我得到的结果是:

102 55 102 -24 ......

这些位是构成我所追求的 32 位字的位吗?从查看文档来看,这些位似乎是要返回的合理数字。就像我说的,这个项目确实给我带来了很多新概念,这些新概念我过去曾短暂浏览过,但从未真正付诸实践。

谢谢。

最佳答案

您需要了解一下按位运算符。特别是右移和左移运算符(注意字节顺序),例如,将变量设置为arinc_high,然后相应地移动它。然后,您将使用例如按位或来设置剩余部分。

关于c - Arinc429 32 位字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29122523/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com