elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a la Factorización De Semiprimos (RSA)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Modificar valor
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 3 Ir Abajo Respuesta Imprimir
Autor Tema: Modificar valor  (Leído 7,374 veces)
Choke1

Desconectado Desconectado

Mensajes: 38


Ver Perfil
Modificar valor
« en: 6 Marzo 2015, 17:28 pm »

Tengo esta estructura y esta union:

typedef struct TreintaydosBits {
    unsigned bit0 : 1;
    unsigned bit1 : 1;
    unsigned bit2 : 1;} TreintaydosBits;

typedef union CuatroBytes {
    long n;
    TreintaydosBits b;
} CuatroBytes;

y quiero cambiar a 0 el bit2.

He declarado lo siguiente:
CuatroBytes pixel;
Y pensaba que haciendo esto se me cambiaba
    pixel.b.bit2 = 0;

Pero no ya que al imprimir me sale 256 256 256

¿Sabeis como se hace bn?

saluds





En línea

ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: Modificar valor
« Respuesta #1 en: 6 Marzo 2015, 17:35 pm »

Esa estructura TreintaydosBits principalmente solo tiene 2 bits eh?

No entendí muy bien. Inicializaste n?


En línea

Choke1

Desconectado Desconectado

Mensajes: 38


Ver Perfil
Re: Modificar valor
« Respuesta #2 en: 6 Marzo 2015, 17:38 pm »

si si era por no pegar los 32.

Si hago lo siguiente:

// Todos los bits del pixel los ponemos a cero
    pixel.n = 0;
En línea

ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: Modificar valor
« Respuesta #3 en: 6 Marzo 2015, 17:46 pm »

No entiendo. Si n está inicializado a 0, hacer "pixel.b.bit2 = 0;" no hará nada.
En línea

Choke1

Desconectado Desconectado

Mensajes: 38


Ver Perfil
Re: Modificar valor
« Respuesta #4 en: 6 Marzo 2015, 17:54 pm »

La cosa es cambiar solo el valor de uno

pixel.n = 0; se ponen todos a 0

si solo solo quiero uno pensaba que se podia hacer asi pixel.b.bit2 = 0; pero no
En línea

ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: Modificar valor
« Respuesta #5 en: 6 Marzo 2015, 17:55 pm »

Código
  1. pixel.b.bit2=1;
En línea

Choke1

Desconectado Desconectado

Mensajes: 38


Ver Perfil
Re: Modificar valor
« Respuesta #6 en: 6 Marzo 2015, 17:58 pm »

Eso hice y me pone 256 a todos los bits
En línea

ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: Modificar valor
« Respuesta #7 en: 6 Marzo 2015, 18:00 pm »

Código
  1. #include <stdio.h>
  2.  
  3. typedef struct TreintaydosBits {
  4.    unsigned bit1 : 1;
  5.    unsigned bit2 : 1;
  6.    unsigned bit3 : 1;
  7.    unsigned bit4 : 1;
  8.    unsigned bit5 : 1;
  9.    unsigned bit6 : 1;
  10.    unsigned bit7 : 1;
  11.    unsigned bit8 : 1;
  12.    unsigned bit9 : 1;
  13.    unsigned bit10: 1;
  14.    unsigned bit11: 1;
  15.    unsigned bit12: 1;
  16.    unsigned bit13: 1;
  17.    unsigned bit14: 1;
  18.    unsigned bit15: 1;
  19.    unsigned bit16: 1;
  20. } TreintaydosBits;
  21.  
  22. typedef union CuatroBytes {
  23.    short n;
  24.    TreintaydosBits b;
  25. } CuatroBytes;
  26.  
  27. int main(){
  28.    CuatroBytes cb;
  29.    cb.n=0;
  30.    cb.b.bit3 = 1;
  31.    printf("%d",cb.n);
  32. }

Eso es correcto.
En línea

Choke1

Desconectado Desconectado

Mensajes: 38


Ver Perfil
Re: Modificar valor
« Respuesta #8 en: 6 Marzo 2015, 18:04 pm »

Me imprime 8
En línea

ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: Modificar valor
« Respuesta #9 en: 6 Marzo 2015, 18:06 pm »

El código que posteé ahí ha de imprimir 4. Imprime 8 si empiezas a numerar los bits desde 0.
En línea

Páginas: [1] 2 3 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Modificar Valor a DWORD en el registro
Programación Visual Basic
Ch3ck 1 4,662 Último mensaje 6 Septiembre 2007, 03:55 am
por APOKLIPTICO
Modificar un valor con Ollydbg
Ingeniería Inversa
pepecuervo 1 3,087 Último mensaje 3 Diciembre 2012, 18:24 pm
por karmany
Modificar el valor ram (4,00 GB) a (32,00) en propiedades del equipo
Software
Loqui86 6 6,802 Último mensaje 21 Diciembre 2012, 13:25 pm
por WHK
Modificar valor checkbox
Desarrollo Web
mapers 3 4,358 Último mensaje 21 Diciembre 2013, 02:29 am
por #!drvy
Cheat Engine no permite modificar el campo VALUE de los registros encontrados
Juegos y Consolas
nolose 1 9,214 Último mensaje 7 Diciembre 2017, 00:40 am
por Darreptor
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines