如何将数据从 int (int port1 = 52010) 复制到一对无符号字符 ( unsigned char port2[2]
?我不知道如何处理除法。
问问题
199 次
2 回答
5
您通常使用遮罩和移位。
const unsigned short port = 52010;
uint8_t port2[2];
大端:
port2[0] = port >> 8;
port2[1] = port & 255;
小端:
port2[0] = port & 255;
port2[1] = port >> 8;
对于 IP 网络中使用的端口号之类的东西,您通常总是使用所谓的“网络字节顺序”(又名“big-endian”),并且有一个特殊的宏来执行此操作:
const unsigned short port_n = ntohs(port);
请注意,这会将端口号保持为unsigned short
,同时在必要时交换字节。
于 2013-01-14T14:44:10.333 回答
2
port2[0] = port1 >> 8;
port2[1] = port1 & 0x00FF;
或以相反的顺序取决于字节顺序
于 2013-01-14T14:44:22.903 回答