Donar $20 Donar $50 Donar $100 Donar mensualmente
 


Enviar respuesta 
 
Calificación:
  • 0 votos - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Buscar en el tema
Ejercicio Informatica [DUDA]
Autor Mensaje
AlexisVieiro Sin conexión
Empleado del buffet
Sin estado :(
*

Otra
Otra

Mensajes: 19
Agradecimientos dados: 18
Agradecimientos: 0 en 0 posts
Registro en: Jul 2014
Mensaje: #1
Ejercicio Informatica [DUDA] Apuntes y Guias Informática I (Electrónica)
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
28-02-2016 19:52
Envíale un email Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
JuaniiPorta Sin conexión
Empleado del buffet
When i go forwards, you go bac...
*

Ing. Electrónica
Facultad Regional Buenos Aires

Mensajes: 4
Agradecimientos dados: 0
Agradecimientos: 1 en 1 posts
Registro en: Mar 2015
Facebook LinkedIn Twitter
Mensaje: #2
RE: Ejercicio Informatica [DUDA]
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;

}


(Este mensaje fue modificado por última vez en: 29-02-2016 16:11 por JuaniiPorta.)
29-02-2016 14:45
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
diegomsaiz Sin conexión
Profesor del Modulo A
Always on the Run!!
*****

Ing. Electrónica
Facultad Regional Buenos Aires

Mensajes: 215
Agradecimientos dados: 204
Agradecimientos: 118 en 52 posts
Registro en: Aug 2011
Mensaje: #3
RE: Ejercicio Informatica [DUDA]
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;
}


"Dos cosas no tienen límite: El universo y la estupidez... Aunque de lo primero, no estoy seguro". (A. Einstein)thumbup3
(Este mensaje fue modificado por última vez en: 13-05-2016 12:59 por diegomsaiz.)
13-05-2016 12:58
Envíale un email Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Buscar en el tema
Enviar respuesta 




Usuario(s) navegando en este tema: 1 invitado(s)



    This forum uses Lukasz Tkacz MyBB addons.