0x88


La representación del tablero de ajedrez 0x88 es un método centrado en el cuadrado para representar el tablero de ajedrez utilizado por algunos programas de ajedrez . El número 0x88 es un entero hexadecimal (136 10 , 210 8 , 10001000 2 ). Las posiciones de rango y archivo están representadas cada una por un nibble (dígito hexadecimal), y los espacios de bits simplifican una serie de cálculos a operaciones bit a bit .

En la representación del tablero 0x88, el diseño se extiende para cubrir un tablero de 8 por 16, igual al tamaño de dos tableros de ajedrez adyacentes. A cada cuadrado de la matriz de 8 por 16 se le asigna un número, como se puede ver en la tabla de distribución del tablero. En este esquema, cada nibble representa un rango o un archivo, de modo que el entero de 8 bits 0x42 representa el cuadrado en (4,2) en numeración basada en cero, es decir, c5 en notación algebraica estándar . [1]

Sumar 16 al número de un cuadrado da como resultado el número del cuadrado que está una fila arriba, y restar 16 da como resultado el número del cuadrado que está una fila abajo. Para pasar de una columna a otra, el número aumenta o disminuye en uno. [2] En notación hexadecimal, las posiciones legales de ajedrez (A1-H8) siempre están por debajo de 0x88. Este diseño simplifica muchos cálculos que los programas de ajedrez necesitan realizar al permitir operaciones bit a bit en lugar de comparaciones. [3]

Cada cuadrado de la tablero de ajedrez se identifica por un par único de coordenadas - una carta entre ( a y h ) para el archivo, y un número entre 1 y 8 para el rango. Este método de referirse a cuadrados es parte de la notación algebraica . Para convertir un par de coordenadas a un valor 0x88, los archivos se tratan como números enteros, con un correspondiente a 0 y h correspondiente a 7.

Por lo tanto, a 1 corresponde a , con los 8 bits establecidos en , b 2 corresponde a y h 8 corresponde a . [1]

La detección fuera del tablero es una característica de los programas de ajedrez que determina si una pieza está dentro o fuera del tablero de ajedrez legal. En 0x88, el bit más alto de cada nibble representa si una pieza está en el tablero o no. Específicamente, de los 8 bits para representar un cuadrado, el cuarto y el octavo deben ser ambos 0 para que una pieza se ubique dentro del tablero. [4] Esto permite la detección externa mediante operaciones y bit a bit . Si $square AND 0x88(o, en binario, 0b10001000) es distinto de cero, entonces el cuadrado no está en el tablero. [5] Esta operación bit a bit requiere menos recursos informáticos que las comparaciones de enteros. Esto hace que los cálculos, como la detección de movimientos ilegales, sean más rápidos. [5]


Cuadrados en un tablero de ajedrez con notación algebraica