Pergunta

Eu transferi Hex Workshop, e me disseram para ler um arquivo .DBC.

Deve conter 28315 se você ler compensada 0x04 e 0x05

Estou inseguro como fazer isso? Que faz 0x04 média?

Foi útil?

Solução

0x04 é hexadecimal para 4 (o 0x é apenas uma convenção de prefixo comum para base 16 representação de números - uma vez que muitas pessoas pensam em decimal), e que seria o quarto byte (uma vez que eles estão dizendo offset, eles provavelmente contar o primeiro byte como byte 0, então compensado 0x04 seria o 5º byte).

Eu acho que eles estão dizendo que o 4º e 5º byte juntos seria 28315, mas eles dizem que se este é little-endian ou big-endian?

28315 (decimal) é 0x6E9B em notação hexadecimal, provavelmente no arquivo, a fim 0x9B 0x6E se é little-endian.

Nota: Little-endian e big-endian referem-se a ordem bytes são escritos. Os seres humanos típico notação escrita decimal e hexadecimal de um modo big-endian, assim:

256 iria ser escrito como 0x0100 (dígitos à esquerda são a maior escala)

Mas isso leva dois bytes e sistemas de little-endian vai escrever o byte baixo primeiro: 0x00 0x01. sistemas Big-endian vai escrever o high-byte primeiro:. 0x01 0x00

<> P Normalmente sistemas Intel são little-endian e outros sistemas variar.

Outras dicas

Pense em um arquivo binário como uma matriz linear de bytes.

0x04 seria o 5º (em uma matriz baseada 0) elemento na matriz e 0x05 seria o 6º.

Os dois valores em 0x04 e 0x05 pode ser OR'ed em conjunto para criar o número 28,315. |

Uma vez que o valor que você está lendo é de 16 bits, você precisa bitshift um valor ao longo e depois OR-los juntos, ou seja, se você estava manipulando o arquivo em c #, você usaria algo como isto:

int value = (ByteArray[4] >> 8) | ByteArray[5]);

Esperamos que isso ajude a explicar como os endereços hexadecimais trabalho.

É o 4º eo código XX 5ª a sua visualização ...

1   2  3  4  5  6
01  AB 11 7B FF 5A

Assim, o 0x04 e 0x05 é "7B" e "francos franceses".

Assumindo que você está dizendo, no seu caso 7BFF deve ser igual ao seu valor desejado.

HTH

0x04 em hexadecimal é 4 em decimal. 0x10 em hexadecimal é 16 em decimal. calc.exe pode converter entre hexadecimal e decimal para você.

Offset 4 significa 4 bytes desde o início do arquivo. Offset 0 é o primeiro byte no arquivo.

Olhe para bytes 4 e cinco devem ter os valores 0x6E 0x9B (ou 0x9B 0x6E), dependendo do seu endianess.

aqui . Uma vez que você aprender a ler valores hexadecimais, você estará em muito melhor forma de realmente resolver o seu problema.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top