Extraer bytes en C
Estoy haciendo un programa en C. Estoy para extraer bytes.un8 extractbyte (int r, int pos)
debe devolver el número de bytes pos del número r. Como ejemplo, uso como entrada:0x7788AABB
. La salida entonces debería ser:
El número de parte 0 es BB
La parte número 1 es AA
La parte número 2 es 88
El número de parte 3 es 77
Estoy atascado en la última parte del programa, donde he puesto los signos de interrogación en los comentarios. Esas líneas no están bien y estoy confundido en cómo debería hacer que funcione ... La salida que obtengo ahora es bb en cada parte. Soy bastante nuevo en C por cierto.
#include <stdio.h>
#include <stdlib.h>
typedef unsigned int un32;
typedef unsigned char un8;
un8 extractbyte (un32 r, un8 pos);
int main ()
{
un32 number;
un8 k;
printf("Enter a number:\n");
scanf("%x",&number);
for (k=0; k<=3;k++)
printf ("Part number %d is: %x \n", k , extractbyte(number, k) );
return 0;
}
un8 extractbyte (un32 r , un8 pos)
{
un32 mask;
un32 size = pos*8;
un32; // ??
un8; // ??
return (un8) r; // ??
}