convert long int> 255进入uint8_t数组

时间:2016-03-22 11:23:32

标签: c++ uint8t

我正在使用Particle Photon微控制器并需要发送值>> 255通过TCP。我需要将其转换为uint8_t数组,以便我可以使用client.write((int8_t *data), int sizeof(packet)); 我怎么能实现它?

2 个答案:

答案 0 :(得分:0)

如果可能的话,选择一致的"字节顺序"对于您的数据 - " big endian"是典型的二进制网络协议 - 它用于IP,UDP,TCP等的头字段。

鉴于此,您可以使用htonX系列函数将数据从主机格式(可能采用的格式)转换为网络格式,然后在收到时将ntohX转换回来再次,例如:

uint32_t netword = htonl(data);

[在大端系统上,这些功能成为了#34; no-op" ]

编辑哦 - 我错过了微控制器'有点 - 你没有机会获得这些功能:(

答案 1 :(得分:-2)

使用了ScruffR在this帖子

上所说的内容

EDIT 以前的版本实际上没有正常工作。 采用的解决方案,没有人(尽管投票不下)提供了

char buf[SIZEBUFF];
sprintf(buf,"%s",float2send);
sprintf(buf,"%ld",longInt2send);