1

int (int port1 = 52010) から unsigned chars のペア ( unsigned char port2[2]? 除算の処理方法がわかりません。

4

2 に答える 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ネットワーキングで使用されるポート番号などの場合、通常は常にいわゆる「ネットワークバイトオーダー」(別名「ビッグエンディアン」)に移動します。これを行うための特別なマクロがあります。

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 に答える