Articles of endianness

Organizando uma coleção de bytes big-endian em uma estrutura para extrair valores

Há uma pergunta perspicaz sobre a leitura de uma estrutura de dados C / C ++ em C # de uma matriz de bytes , mas não consigo fazer com que o código funcione para minha coleção de bytes big-endian (ordem de bytes de rede). (EDIT: Observe que minha estrutura real tem mais do que […]

Construindo um float de 32 bits de seus 4 bytes compostos

Eu estou tentando construir um float de 32 bits de seus 4 bytes compostos. Existe uma maneira melhor (ou mais portátil) de fazer isso do que com o método a seguir? #include typedef unsigned char uchar; float bytesToFloat(uchar b0, uchar b1, uchar b2, uchar b3) { float output; *((uchar*)(&output) + 3) = b0; *((uchar*)(&output) + […]

Por que a ordem de bytes de rede é definida como big-endian?

Como está escrito no header, minha pergunta é: por que o TCP / IP usa codificação big endian ao transmitir dados e não o esquema alternativo little-endian?

Como obter dados little endian de big endian em c # usando o método bitConverter.ToInt32?

Eu estou fazendo aplicação em c # .Nessa aplicação eu tenho matriz de bytes contendo valores hexadecimais. Aqui eu estou recebendo dados como um grande endian, mas eu quero isso como um pouco endian. Aqui estou usando o método Bitconverter.toInt32 para converter esse valor em inteiro. Mas o meu problema é que antes de converter […]

Existe alguma function padrão “htonl” para números inteiros de 64 bits em C ++?

Eu estou trabalhando em uma implementação do protocolo memcache que, em alguns pontos, usa valores inteiros de 64 bits. Esses valores devem ser armazenados em “ordem de bytes da rede”. Eu gostaria que houvesse alguma function uint64_t htonll(uint64_t value) para fazer a mudança, mas infelizmente, se existir, não consegui encontrá-la. Então eu tenho 1 ou […]

Edição de BinaryWriter Endian

Eu estou usando a class BinaryWriter para gravar um arquivo binário em disco. Quando eu invoco o método Write, passando um valor curto não assinado, ele escreve no formato little-endian. Por exemplo: bw.Write(0xA000); escreve o valor no arquivo binário como 0x00 0xA0. Existe uma maneira de fazer BInaryWriter usar Big Endian? Se não, é possível […]

JavaScript digitou matrizes e endianness

Estou usando o WebGL para renderizar um arquivo de malha codificado binário. O arquivo binário é gravado em formato big-endian (posso verificar isso abrindo o arquivo em um editor hexadecimal ou visualizando o tráfego de rede usando o violinista). Quando tento ler a resposta binária usando um Float32Array ou Int32Array, o binário é interpretado como […]

O Java lê inteiros em little endian ou big endian?

Eu pergunto porque estou enviando um stream de bytes de um processo C para Java. No lado C, o inteiro de 32 bits tem o LSB sendo o primeiro byte e o MSB o 4o byte. Então, minha pergunta é: No lado do Java, quando lemos o byte como ele foi enviado do processo C, […]

A mudança de bits depende do endianness?

Suponha que eu tenha o número ‘numb’=1025 [00000000 00000000 00000100 00000001] representado: Na Little-Endian Machine: 00000001 00000100 00000000 00000000 Na máquina big-endian: 00000000 00000000 00000100 00000001 Agora, se eu aplicar Left Shift em 10 bits (ie: numb << = 10), eu deveria ter: [A] Na Máquina Little-Endian: Como eu notei no GDB, Little Endian faz […]

Determinando o endianness em tempo de compilation

Existe uma maneira segura e portátil de determinar (durante o tempo de compilation) o endianness da plataforma na qual meu programa está sendo compilado? Estou escrevendo em C. [EDIT] Obrigado pelas respostas, decidi ficar com a solução de tempo de execução!