El orden de los bits es importante cuando un campo utiliza parte de un byte, o abarca los bytes que comienzan o terminan (o ambos) en parte a través de un byte.
Ejemplo: 2 bytes de datos primero 235 (decimal) segundo 173 (decimal), también conocido como hex EB y AD.
Quiero un campo de bit que comienza en el cuarto bit, hasta el 12º bit. Por lo tanto, omita más de 3 bits, haga un entero sin signo de 9 bits de los siguientes 9 bits.
reclamo hay 4 posibles resultados:
byteOrder, bitOrder
* bigEndian, bigEndian results in hex 0BA or decimal 186
* littleEndian, littleEndian results in hex 1BD or decimal 445
* littleEndian, bigEndian results in hex 05D or decimal 93
* bigEndian, littleEndian results in hex 1DE or decimal 478
que he visto el primero de éstos 3 4 en los datos. grande, grande y pequeño, son fáciles de resolver.
Sugerencia para tratar con esto.
Si el orden de bytes es big endian, anote los bytes de la izquierda hacia la derecha. Si el orden de bytes es poco endian, anote los bytes de la derecha hacia la izquierda.
Los bits generalmente se cuentan desde la derecha, por lo que 010 serían los últimos tres bits en su ejemplo. Menciono esto porque creo que la mayoría de los documentos sobre manipulación de bits consideran que los bits más bajos, los bits que representan 1, 2, 4, ... son los primeros bits. –
No existe una convención universal sobre el orden de bits dentro de una palabra. En la práctica, depende para lo que lo está usando. Si está haciendo aritmética de múltiples palabras, el orden natural es primero LSB. Sin embargo, para calcular un CRC para un paquete TCP/IP, primero MSB tiene más sentido. – comingstorm