Ayuda con un concepto de una API

Antes de ir al Soporte consultame aquí, gracias
Avatar de Usuario
Ximorro
Profesional del Autoit
Mensajes: 1500
Registrado: 10 Jul 2009, 12:35
Ubicación: Castellón, España

Re: Ayuda con un concepto de una API

Mensaje por Ximorro »

Jonny escribió:Hola
Ximorro dijo: ¿No ibas desencaminado? ¿lo entiendes ahora?
Bueno, yo dige que creía que debía hacerlo con BitOr():
Ya, pero acertaste de casualidad, porque creo que vas a ciegas con el tema del binario y el hexadecimal. Eso no es ir bien encaminado, eso es chiripa ;-)

Yo empezaría mirando bien la representación binaria:
http://es.wikipedia.org/wiki/Sistema_binario
No hace falta que te lo mires todo (aunque no haría daño), te recomiendo ver al menos la conversión entre binario y decimal, y viceversa (si quieres pasa de la parte de los decimales, el sistema de números reales en ordenadores es diferente). Al final también tienes algo de conversión entre binario y hexadecimal.

Mira, aquí tienes explicadas algunas de las operaciones lógicas, lo he encontrado en una página de Pascal pero la lógica booleana (o binaria) es algo genérico en todos los lenguajes porque en realidad es un tema de matemáticas (de gran utilidad en informática, dado su naturaleza binaria, pero la lógica de Boole existe de antes de los ordenadores)
http://sistemas.itlp.edu.mx/tutoriales/ ... 2_6_3.html

Las dos últimas corresponden con los desplazamientos, SHL y SHR corresponden con BitShift en AutoIt (en AutoIt en vez de dos funciones diferentes se usa una, y pones el desplazamiento en negativo para mover a la izquierda)
Además AutoIT tiene rotaciones, donde los bits que se desplazan por un extremo salen por el otro: BitRotate
O sea, si desplazas 1 bit a la derecha en un byte que contiene un uno obtienes un cero: 00000001 -> 00000000
Pero si haces una rotación ese bit a 1 aparece por el otro lado y te da 128: 00000001 -> 10000000

Esta es la base del sistema hexadecimal, no hay ningún misterio, en vez de 2 dígitos (binario) o 10 (decimal) se usan 16:
http://enciclopedia.us.es/index.php/Sistema_hexadecimal

Se usa mucho en informática porque es muy útil para expresar ristras binarias de forma compacta, pues al ser 16 potencia exacta de 2 hay correspondencia dígito a dígito, un dígito hexadecimal son 4 en binario (2^4=16). La tabla de la wikipedia te puede resultar interesante:
http://es.wikipedia.org/wiki/Sistema_he ... exadecimal
(Pasa algo parecido con el sistema octal, pero eso no lo usa AutoIT)

Así por ejemplo F0A2(hex)=1111000010100010(bin)
Pues F=1111, 0=0000, A=1010 y 2=0010
El famoso formato de color RGB se pone en hexadecimal muy convenientemente pues cada color tiene un byte=8bits=2cifras hexadecimales, para cada color. Es muy fácil ver que el color 0x00FF00 tiene a cero el rojo y el azul, pero el verde a FF(hex)=11111111(bin)=255(dec), o sea, es un verde puro. Ese número en decimal es 65280, perfectamente equivalente pero para el lector humano menos conveniente (al ordenador, en este caso AutoIt, le da igual).
"¿Y no será que en este mundo hay cada vez más gente y menos personas?". Mafalda (Quino)
Responder