Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: francosmp en 6 Enero 2017, 03:52 am



Título: BITS
Publicado por: francosmp en 6 Enero 2017, 03:52 am
Hola ! estoy revisando informacion con respecto a programacion basica a nivel de bits y me parece curioso el bitwise complement, pero queria saber si es que definiendo un int a = 3 y un int b = 4 puedo sumar estos sin usar el operador +, ya que debido al procesador es que pierde la importancia pero si fuera un procesador muy antiguo talvez la optimizacion seria importante. tengo poco conocimiento con el apagar y prender bites como con la negacion y pense que con un and o un xor podria realizar esas operaciones. me podria explicar alguien ? si se que en internet hay informacion pero es un poco mas directa, nose si me dejo entender


Título: Re: BITS
Publicado por: ivancea96 en 6 Enero 2017, 14:35 pm
Un 3 y un 4 sí, se pueden sumar con el operador OR. Pero no todos lso números pueden. 3 y 4 sí, porque no hay bits repetidos:
Código:
3:   0011
4:   0100
3+4: 0111

Sin embargo, 3+2:
Código:
3:     0011
2:     0010
3+2 != 0011 (3)

Y sobre información sobre estas operaciones, pues lo que puedas encontrar por ahí tanto sobre puertas lógicas en electrónica como de operadores a nivel de bit. Lo único, que en programación, estos operadores afectan a cada uno de los bits (una puerta lógica generalmente acepta solo 2 bits, así que los operadores hacen esta puerta en cada uno de lso bits).


Título: Re: BITS
Publicado por: francosmp en 6 Enero 2017, 20:38 pm
gracias ivancea96, pero sabes de alguna forma de sumar cualquier tipo de numero sin usar el operador + ? o tendria q comunicarme al estilo de compuertas logicas con el procesador ? gracias


Título: Re: BITS
Publicado por: ivancea96 en 6 Enero 2017, 21:56 pm
Puedes hacerlo manualmente con puertas lógicas. Pero tendrías que ir bit a bit. Será mucho menos eficiente, eso sin duda.
Sobre cómo sumar con puertas lógicas, es algo más dado a la electrónica: http://www.electronica.com.es/content/25-sumadores-binarios (http://www.electronica.com.es/content/25-sumadores-binarios)
No es solo una operación. Hay que hacer varias cosas. Todo eso y más es lo que hace el procesador ejecuta una instrucción de sumar.


Título: Re: BITS
Publicado por: MAFUS en 7 Enero 2017, 01:02 am
Como dice ivancea96 hacerlo 'a mano' es ineficiente. El procesador con una sola instrucción lo hace.

Verás:
Nomenclatura:
· Bit entrada 1 -> A
· Bit entrada 2 -> B
· Bit entrada acarreo -> C
· Función bit salida -> Fb
· Función bit acarreo -> Fc

Un sumador completo consta de las entradas y salidas anteriores. Y como vemos funciona por bits. Las ecuaciones son las siguientes:
· Fb = A xor B xor C
· Fc = A and B or A and C or B and C

Por cada bit del resultado se utilizan las funciones anteriores.
Las operaciones se realizan desde el bit de menor peso al bit de mayor peso.
El acarreo del bit de menor peso es 0.
Los acarreos de los posteriores bits son la función bit acarreo (Fc) del inmediatamente anterior.
La bandera Carry del procesador es el Fc del último bit del registro.



Título: Re: BITS
Publicado por: francosmp en 17 Enero 2017, 02:02 am
Gracias