У меня есть вектор из четырех байтов: std::vector<int8_t> src = { 0x0, 0x0, 0x27, 0x10 };
, который в шестнадцатеричном виде равен 10000. (0x2710)
Как мне набрать его в int32_t
, чтобы я получил 10.000, используя reinterpret_cast
?
Это легко сделать с помощью битовых сдвигов, например:
(int32_t)((src[offset] << 24) | (src[offset+ 1] << 16) | (src[offset+ 2] << 8) | (src[offset+ 3]));
но насколько я знаю, как работает reinterpret_cast
, это можно использовать здесь в лучшем виде, но я не могу понять, как именно это сделать в самом коде.
reinterpret_cast<int32_t*>(&0x00002710);
ps: это не только для int32_t или около того, это может быть истолковано как угодно я хотел бы sh. В этом все дело.