BITS

Iniciado por francosmp, 6 Enero 2017, 03:52 AM

0 Miembros y 1 Visitante están viendo este tema.

francosmp

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

ivancea96

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:
3:   0011
4:   0100
3+4: 0111


Sin embargo, 3+2:
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).

francosmp

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

ivancea96

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
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.

MAFUS

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.


francosmp