• Domingo 15 de Diciembre de 2024, 01:48

Autor Tema:  Binarios  (Leído 1097 veces)

Cosmos009

  • Nuevo Miembro
  • *
  • Mensajes: 19
    • Ver Perfil
Binarios
« en: Lunes 6 de Septiembre de 2010, 17:39 »
0
Hola a todos.Les expongo esta operación ya que no tengo claro su interpretación:
(c & (1 << i)) ? 1: 0
Se como funciona el operador ternario pero aún así no tengo claro el resultado.
Si c = 4 y i = 0. c es una variable y i un contador.
Entonces si 4 y 1 con i desplazamientos a la izquierda es verdad 1. Si no 0.
No entiendo la operación AND binaria, no  relaciono este resultado.
Gracias a todos.

ProfesorX

  • Moderador
  • ******
  • Mensajes: 796
  • Nacionalidad: mx
    • Ver Perfil
Re: Binarios
« Respuesta #1 en: Lunes 6 de Septiembre de 2010, 18:44 »
0
El operador and binario convierte a 0 si los alguno de los digitos son cero, y 1 si los dos digitos son uno, o dicho de otra forma:

0 & 0 = 0
0 & 1 = 0
1 & 0 = 0
1 & 1 = 1

Para entenderlo mejor, podrias poner en papel la conversion de los numeros en binario, y asi te das mejor cuenta de como trabaja:

C = 4 = 100 (binario)
si i=0 entonces 1 << i seria 1 << 0, o sea cero corrimiento, por lo tanto 1 << 0 = 001
luego usando el and
100 & 001 = 000

si i=1 entonces 1 << i seria 1 << 1, o sea un corrimiento, por lo tanto 1 << 1 = 010
luego usando el and
100 & 010 = 000

si i=2 entonces 1 << i seria 1 << 2, o sea dos corrimientos, por lo tanto 1 << 2 = 100
luego usando el and
100 & 100 = 100

Repitiendo, y como puedes ver, solamente obtienes 1 cuando los dos digitos son 1, si algun digito es cero, inmediatamente el resultado es cero.

Si tienes mas dudas, como dje antes, escribe la conversion a binario del numero en papel, y te daras cuenta mejor que es lo que pasa.

Saludos :)

NOTA:
==================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
==================================================================

Cosmos009

  • Nuevo Miembro
  • *
  • Mensajes: 19
    • Ver Perfil
Re: Binarios
« Respuesta #2 en: Martes 7 de Septiembre de 2010, 18:08 »
0
Gracias ProfesorX, así si que lo comprendo.
La verdad es que sin esta explicación me hubiese tirado largo tiempo investigando hasta desvelarlo.Muy buena explicación.
Lo he repasado convirtiendo a mano el numero y se hace mucho más comprensible.
Tendré que repasar los operadores binarios desde otra fuente, ya que la que estudio en esto es muy somera.
Gracias de nuevo.
Un saludo.  :D