首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无符号long和uint8_t数组之间的转换

无符号long和uint8_t数组之间的转换
EN

Stack Overflow用户
提问于 2019-03-29 12:13:56
回答 1查看 1.2K关注 0票数 0

我正在尝试读写一个未签名的长类型值到NFC卡。

我正在使用pn532模块、MifareUltralight卡和Adafruit库。mifareultralight_WritePage函数似乎只接受一个大小为4字节的uint8_t类型数组。

因此,我希望将一个4字节的长类型值逐个存储在Uint8_t数组中,并将一个4字节长的Uint8_t数组转换为一个长类型变量。

代码语言:javascript
复制
#include <Adafruit_PN532.h>

...

uint8_t writeBuffer[4] = { 18, 52, 86, 120 };
nfc.mifareultralight_WritePage(8, writeBuffer);
代码语言:javascript
复制
uint8_t readBuffer[4];
success = nfc.mifareultralight_ReadPage(i, &readBuffer[0]);
    if (success) {
        nfc.PrintHex(readBuffer, 4);
}
EN

回答 1

Stack Overflow用户

发布于 2019-03-29 12:28:59

在……里面

uint8_t writeBuffer4 ={ 18,52,86,120 };

如果索引0包含较低的字节,请执行例如

代码语言:javascript
复制
uint8_t writeBuffer[4] = { 18, 52, 86, 120 };
unsigned long v = writeBuffer[0];

for (size_t i = 1; i != 4; ++i)
  v += ((unsigned long) writeBuffer[i]) << (i * 8);

如果索引0包含较高的字节,请执行例如

代码语言:javascript
复制
uint8_t writeBuffer[4] = { 18, 52, 86, 120 };
unsigned long v = writeBuffer[3];

for (size_t i = 1; i != 4; ++i)
  v += ((unsigned long) writeBuffer[3 - i]) << (i * 8);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55417238

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档