Java の場合:
値 = 1122;
public static final byte[] intToByteArray(int value) {
return new byte[] {
(byte)(value >>> 24),
(byte)(value >>> 16),
(byte)(value >>> 8),
(byte)value};
}
public static int byteArrayToInt(byte[] data) {
return (int)(
(int)(0xff & data[0]) << 24 |
(int)(0xff & data[1]) << 16 |
(int)(0xff & data[2]) << 8 |
(int)(0xff & data[3]) << 0
);
}
ここでは [0, 0, 4, 98] を返すので、C では:
char* intToByteArray(int value){
char* temp = new char[4];
temp[0] = value >> 24,
temp[1] = value >> 16,
temp[2] = value >> 8,
temp[3] = value;
return temp;
}
cにはバイトデータ型がないため、代わりにchar *を使用できますが、一時値を返すとnullになるため、次のような値をチェックしました。ゼロのデータを取得するには、変換中に残りの値をどのように管理すればよいですか??
char* where = new char[10];
where[0] = temp[3];
where[1] = temp[2];
where[2] = temp[1];
where[3] = temp[0];
where[4] = 0;