Konversi array byte ke/dari peningkatan numerik?

Saya mencoba mengonversi array byte ke dan dari Boost number dengan backend cpp_int. Apa cara portabel untuk melakukan hal ini?

Platform yang saya khawatirkan semuanya adalah little endian, tetapi bisa 32 atau 64 bit dan dapat dikompilasi dengan kompiler yang berbeda. Beberapa cara yang saya lihat untuk melakukan hal ini bergantung pada versi kompiler dan semacamnya, dan itulah yang ingin saya hindari.


person Earlz    schedule 02.09.2016    source sumber


Jawaban (1)


Satu-satunya perbedaan nyata antara x86 dan x64 adalah ukuran pointer. Jadi kecuali itu bergantung pada ukuran pointer, seharusnya tidak ada banyak masalah. Terutama karena satu byte selalu 8bit dan Anda sudah mengesampingkan masalah endiannes.

person Hindrik Stegenga    schedule 02.09.2016
comment
Saya menemukan ini stackoverflow.com/questions/15720841/ tetapi tampaknya menggunakan metode penyimpanan yang berbeda tergantung pada apakah kompiler mendukung bilangan bulat 128bit atau tidak - person Earlz; 02.09.2016