Como faço para converter entre valores big-endian e little-endian em C ++?
Como faço para converter entre valores big-endian e little-endian em C ++?
EDIT: para maior clareza, eu tenho que traduzir dados binários (valores de ponto flutuante de precisão dupla e inteiros de 32 bits e 64 bits) de uma arquitetura de CPU para outra. Isso não envolve rede, portanto funções ntoh () e similares não funcionarão aqui.
EDIT # 2: A resposta que eu aceitei aplica-se diretamente aos compiladores que estou mirando (e é por isso que eu escolhi isso). No entanto, existem outras respostas muito boas e mais portáteis aqui.