以下のコードは、ソケットから整数に4バイトを読み取ります。私はバイトが(小数で)130 0 0 0であることがわかります。私は以下のコードがバージョン130を返すと思われますが、私は理由を知らない。これは130に戻るでしょうか?私はJavaでそれを複製しようとしましたが、私は非常に大きな負の数です(私が期待するものより多く)。以下の疑似/ Cコードをどのように解釈すればよいですか?4ソケットバイトをintに変換する
#include <socket.h>
void readVersion(char *buf, int iCount) {
recv(hSocket, buf, iCount, MSG_WAITALL);
}
int m_iVersion;
readVersion((char *) &m_iVersion, sizeof (m_iVersion))
count << m_iVersion;
あなたの本当の疑問は_ [endianness](http://en.wikipedia.org/wiki/Endianness)_です。 – ildjarn
返すと思われる 'void'関数は何ですか? – SingleNegationElimination
私は強くこのようにキャストを使用しないことをお勧めします。実装しているプロトコルの仕様を確認し、そのプロトコルに従って4バイトを解釈します。キャストと最高のための希望で 'int'のものを食べるだけではありません。 –