我知道大致上有关于这方面的事情..但是我的大脑受伤了,我找不到任何东西可以让这项工作发挥作用......
我正在尝试通过 unix 套接字发送一个 16 位无符号整数。为此,我需要将 uint16_t 转换为两个字符,然后我需要在连接的另一端读入它们并将其转换回一个unsigned int 或 uint16_t,此时使用 2 字节还是 4 字节并不重要(我运行的是 64 位,这就是为什么我不能使用 unsigned int :)
顺便说一句,我正在用 C 语言做这个
Thanks
为什么不直接用掩码和移位将其分解为字节呢?
uint16_t value = 12345;
char lo = value & 0xFF;
char hi = value >> 8;
(edit)
在另一端,你可以用相反的方式组装:
uint16_t value = lo | uint16_t(hi) << 8;
在我的脑海中,不确定是否需要该演员。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)