gpt4 book ai didi

将 uint16_t 转换为 char[2] 以通过套接字发送 (unix)

转载 作者:可可西里 更新时间:2023-11-01 02:30:17 25 4
gpt4 key购买 nike

我知道大致上有一些东西..但我的大脑受伤了,我找不到任何东西来做这件事......

我正在尝试通过 unix 套接字发送一个 16 位无符号整数。为此,我需要将 uint16_t 转换为两个字符,然后我需要在连接的另一端读取它们并将其转换回来转换为 unsigned int 或 uint16_t,此时它使用 2bytes 还是 4bytes 并不重要(我运行的是 64 位,这就是为什么我不能使用 unsigned int :)

顺便说一句,我在 C 中这样做

谢谢

最佳答案

为什么不使用掩码和移位将其分解成字节?

 uint16_t value = 12345;
char lo = value & 0xFF;
char hi = value >> 8;

(编辑)

在另一端,你用相反的方式组装:

 uint16_t value = lo | uint16_t(hi) << 8;

在我的脑海中,不确定是否需要强制转换。

关于将 uint16_t 转换为 char[2] 以通过套接字发送 (unix),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13279024/

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