Articles of endianness

Converta uma matriz de bytes para inteiro em Java e vice-versa

Eu quero armazenar alguns dados em matrizes de bytes em Java. Basicamente, apenas números que podem levar até 2 bytes por número. Gostaria de saber como posso converter um inteiro em uma matriz de byte longa de 2 bytes e vice-versa. Eu encontrei muitas soluções googling mas a maioria deles não explica o que acontece […]

C Definição de macro para determinar a máquina big endian ou little endian?

Existe uma definição de macro de uma linha para determinar o endianness da máquina. Estou usando o código a seguir, mas convertê-lo em macro seria muito longo. unsigned char test_endian( void ) { int test_var = 1; unsigned char test_endian* = (unsigned char*)&test_var; return (test_endian[0] == NULL); }

Por que a otimização elimina essa function?

Recentemente, tivemos uma palestra na universidade sobre programação de especialidades em vários idiomas. O palestrante escreveu a seguinte function: inline u64 Swap_64(u64 x) { u64 tmp; (*(u32*)&tmp) = Swap_32(*(((u32*)&x)+1)); (*(((u32*)&tmp)+1)) = Swap_32(*(u32*) &x); return tmp; } Embora eu entenda totalmente que esse também é um estilo muito ruim em termos de legibilidade, seu ponto principal […]

converter big endian para little endian em C

Eu preciso escrever uma function para converter big endian para little endian em C. Eu não posso usar qualquer function de biblioteca.

Detectando o endianness programaticamente em um programa C ++

Existe uma maneira programática para detectar se você está ou não em uma arquitetura big endian ou little-endian? Eu preciso ser capaz de escrever código que será executado em um sistema Intel ou PPC e usar exatamente o mesmo código (ou seja, sem compilation condicional).

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 […]