Преобразовать байтовый массив в/из числового увеличения?

Я пытаюсь преобразовать массив байтов в Boost number и обратно с бэкэндом cpp_int. Как это можно сделать портативно?

Платформы, о которых я беспокоюсь, все имеют прямой порядок байтов, но могут быть 32- или 64-битными и могут быть скомпилированы с помощью разных компиляторов. Некоторые из известных мне способов сделать это прерываются в зависимости от версии компилятора и тому подобного, и этого я хочу избежать.


person Earlz    schedule 02.09.2016    source источник


Ответы (1)


Единственная реальная разница между x86 и x64 — это размер указателей. Поэтому, если он каким-то образом не зависит от размера указателей, особых проблем быть не должно. Тем более, что байт всегда 8 бит, и вы уже исключили проблемы с порядком байтов.

person Hindrik Stegenga    schedule 02.09.2016
comment
Я нашел это stackoverflow.com/questions/15720841/, но, похоже, использует разные методы хранения в зависимости от того, поддерживает ли компилятор 128-битные целые числа или нет - person Earlz; 02.09.2016