UTNianos

Versión completa: Ejercicio Informatica [DUDA]
Actualmente estas viendo una versión simplificada de nuestro contenido. Ver la versión completa con el formato correcto.
Alguien que me pueda dar una mano? Como imprimo byte a byte una variable en C? Busque en internet pero encuentro con codigo que no nos enseñaron, asi que no sirve! Confused
Llo que se puede hacer es simplemente asignar la posición de memoria de la variable a un puntero del tipo char.

Después, te vas moviendo con el puntero y avanzás de byte a byte.

De esta manera, podés printear cada byte de un entero.

Por ejemplo probá esto:



#include <stdlib.h>
#include <stdio.h>

int main(void)
{

unsigned int Var = 4294967294;
int i;
unsigned char *p;

p = (unsigned char*) &Var;

printf("Indice:\tDato:\tDireccion:\n\r");

for (i = 0; i < sizeof(Var); i++)
{
printf("%d\t%02x\t%p\n\r", i, *(p+i), (p+i));
}


return 0;

}


Alexis, acá te aporto otra solución usando uniones (un toque antipático el tema y quién sabe, te lo tomen en un final)



#include<stdio.h>

union uni
{
int variable;
unsigned char vec[4];
};

// ajustar el indice del for si el int es de 2 bytes en vez de 4

int main()
{
system("clear"); // limpia pantalla

int rep;
union uni muestra_bytes;

printf("Ingresar un entero -> ");

scanf("%d", &muestra_bytes.variable);

// imprimo los bytes

printf("Valor ingresado: %d\n", muestra_bytes.variable);

puts("Byte_3\tByte_2\tByte_1\tByte_0");
puts("-------------------------------------");

for(rep = 3; rep >= 0; rep--)
{
printf("%x\t", muestra_bytes.vec[rep]);
}

printf("\n");

return 0;
}

URLs de referencia