所以我有一个地址,其中有一个vftable的偏移量。它以字节存储在程序集中。例如:03 c3 bd 0c
我想获取字节,并将它们转换为小地址样式。
byte[0] = ((unsigned char *)addr)[3];
byte[1] = ((unsigned char *)addr)[2];
byte[2] = ((unsigned char *)addr)[1];
byte[3] = ((unsigned char *)addr)[0];
所以示例的输出将是0x0cbdc303。
我该如何正确编码?
答案 0 :(得分:0)
byte[0] = ((unsigned char *)addr)[3];
byte[1] = ((unsigned char *)addr)[2];
byte[2] = ((unsigned char *)addr)[1];
byte[3] = ((unsigned char *)addr)[0];
后面应该是
uint32_t address = (byte[0] << 24)|(byte[1] << 16)|(byte[2] << 8)|(byte[3]);
当然,您可以摆脱byte[]
并将原始值替换为此值。
答案 1 :(得分:-1)
所以你有一个小端设备,并希望将4个小端字节转换为单个4字节数。这可以通过这种方式轻松完成:
@Override
public void serialize(String x, JsonGenerator jGenerator, SerializerProvider provider)
throws IOException {
}