(void *) blog

Posted on by fortytwo_de

I spent the last weekend at EMF. It was a blast. Apart from the talks and “official” activities being just plain awesome, the atmosphere was fantastic as well.

One of the cool things I get to physically bring home from EMF is a pair of TiLDAs (one of them gifted to me by Jeremy (who, by the way, is working on an awesome project and you should all be keeping an eye on him)).

The TiLDA is EMF camp’s badge, something very common among hackcamps in general. This particular one, has two RGB LEDs, a 2.4GHz radio transceiver, a 1600mAh LiPo battery and a IR LED.

This is particularly interesting because you can do fun stuff like turning off televisions with it:

(sorry for the bad quality and vertical video)

Continue reading

Posted on by fortytwo_de | Posted in C, Hardware, Programación

Posted on by fortytwo_de

El resultado de sumar 00001111 (15) y 11110000 (240) es 255, es decir, 11111111.

Para entender la suma de bytes, primero explicaré la suma de bits:

Suma de bits

a b c d
1 0 1 0
0 1 1 0
0 0 0 0
1 1 0 1

a es el primer bit, bel segundo, c el resultado y d la llevada (carry).

Sin conocer aún las operaciones bitwise que se aplican, se pueden escribir los valores de c y d así:

  • c = a ? b
  • d = a ? b

"?" es una operación bitwise desconocida

Para descubrir las operaciones desconocidas, separo los dos valores de resultados.

Primero, con la tabla de valores de c:

a b c
1 0 1
0 1 1
0 0 0
1 1 0

Aislando la tabla de valores de c se puede descubrir que, efectivamente, la operación que se realiza sobre a y b para obtener b es XOR.

El mismo proceso con la tabla de valores de d:

a b d
1 0 0
0 1 0
0 0 0
1 1 1

¿Qué operación binaria solo devuelve 1 si las dos entradas son 1? Exacto, AND.

Ahora se pueden escribir las ecuaciones que determinan los valores de c y d:

  • c = a ^ b
  • d = a & b

Continue reading

Posted on by fortytwo_de | Posted in Algoritmos, C, Matemáticas, Programación