Código:
// Inicialmente tengo el numero 0xA0B0C0 el cual es de 24 bits.
// Las i386 y superiores son little endian por lo que un esquema de bytes queda asi
// Byte 3 | Byte 2 | Byte 1
// C0 | B0 | A0
// Y debo convertirlo a su equivalente de 32 bits el cual debiese ser asi
// Byte 4 | Byte 3 | Byte 2 | Byte 1
// C0 | B0 | A0 | 00
// ¿Es correcto el esquema?
// En tal caso, esta correcto el código?
word lba_conv(byte b1, byte b2, byte b3)
{
word val = 0;
val = val | b1;
val = val << 8;
val = val | b2;
val = val << 8;
val = val | b3;
}
Gracias a todos. Saludos// Las i386 y superiores son little endian por lo que un esquema de bytes queda asi
// Byte 3 | Byte 2 | Byte 1
// C0 | B0 | A0
// Y debo convertirlo a su equivalente de 32 bits el cual debiese ser asi
// Byte 4 | Byte 3 | Byte 2 | Byte 1
// C0 | B0 | A0 | 00
// ¿Es correcto el esquema?
// En tal caso, esta correcto el código?
word lba_conv(byte b1, byte b2, byte b3)
{
word val = 0;
val = val | b1;
val = val << 8;
val = val | b2;
val = val << 8;
val = val | b3;
}