Sistemas y Operaciones Numéricos
Contenido1.- Introducción:Esta guía está enfocada para aquellas personas que no estén familiarizadas con el tema y deseen saber un poco más acerca de la nueva mecánica relacionada con Pokémon (como el RNG por ejemplo). Se verán de forma introductoria los sistemas y operaciones binarias con una orientación a su uso en mecánica Pokémon. Para una explicación bien detallada y completa siempre puedes buscar por Internet. La finalidad es que el lector sea capaz de aplicar las fórmulas que se ven en las secciones de mecánica por sí mismo o ayudado de una calculadora, y pueda hacer sus propias deducciones. Para el resto de la guía, trataremos las operaciones o conversiones con la calculadora de Windows en modo científico (Menú Ver > Opción Científica), que debe ser lo más común para la mayoría: 2.- Sistemas Numéricos:Un sistema de numeración es un conjunto de símbolos y reglas que permiten representar datos numéricos. Los sistemas de numeración actuales son sistemas posicionales, que se caracterizan porque un símbolo tiene distinto valor según la posición que ocupa en la cifra. La razón de por qué debemos entender qué es un sistema numérico, es porque en los sistemas computacionales solo importa uno: El sistema binario, el sistema hexadecimal es utilizado para representar estos números de forma más conveniente para nosotros.
La representación de un número entero en un sistema de base N sería: Número = (1er Díg. * N0) + (2do Díg. * N1) + (3er Díg. * N2) + ... + (nmo Díg. * Nn) Donde...
Así, el número "wxyz" que está en base N: El primer dígito será "z", el segundo dígito será "y", el tercer dígito será "x" y el cuarto dígito será "w". En sistemas numéricos posicionales, el dígito de menos significancia es el que está más a nuestra derecha, y es el que tiene menos peso en el número mismo, el dígito de más Un número de base diferente a 10, que es la que cotidianamente manejamos, cobra significado para nosotros si lo convertimos a un número en base 10, la anterior ecuación sirve para tales fines si conocemos la equivalencia entre dígitos para cada sistema. Tal equivalencia entre dígitos sería, para los 3 sistemas que necesitaremos manejar:
Para denotar que un número en particular está en cierta base, basta con poner el valor de la base como un subíndice al final de éste. Así, un número en decimal como 3185 estaría mostrando en qué base está si se escribe de la forma 318510; número que es diferente al que se escribe 318516, que sería un número hexadecimal. En la práctica esto no se suele utilizar así, y en cambio se utiliza otra notación para cada sistema en particular:
Ejemplo: El número en binario: 101100010, ¿que valor tendrá como número en base 10?.
Y en total tenemos: Para hacerlo en la calculadora, solo basta con cambiar al modo de sistema binario (la opción "Bin"), poner el número dado, y pasar al modo de sistema decimal (la opción "Dec"). Ejemplo: El número en hexadecimal: B40E, ¿que valor tendrá como número en base 10?.
Y en total tenemos: Para hacerlo en la calculadora: Cambiamos al modo de sistema hexadeciaml (la opción "Hex"), poner el número dado, y pasar al modo de sistema decimal (la opción "Dec"). 2.1- Equivalencia Entre Sistemas Numéricos.Ya se ha explicado cómo pasar un número de un sistema en base N al sistema decimal. Aunque lo contrario no será explicado aquí, es muy fácil de hacer esto en la calculadora mostrada. Se puede hacer conversión entre 4 sistemas: Hexadecimal (Hex), Decimal (Dec), Octal (Oct) y Binario (Bin) (el sistema octal tiene como base el número 8, y toma los dígitos desde el 0 hasta el 7), de cualquiera a cualquiera. Para hacer la conversión correctamente, antes de poner el número primero se debe elegir el sistema con el que se está tratando, después, para ver su equivalente a otro sistema, solo hay que cambiar la opción de la calculadora. Sin embargo, transformar un número binario a un hexadecimal o viceversa es realmente sencillo, debido a que 16 (la base de los números en hexadecimal) es una potencia de 2 (la base de los números en binario), y en realidad ésta es la razón de utilizar el sistema hexadecimal junto con el sistema binario. Ejemplo: ¿Cómo sería en hexadecimal el número 11100001100111, que está en binario?
Luego cogemos cada grupo del número y encontramos su equivalente dígito en hexadecimal, según la tabla que ya se vio, y en resumen tendríamos:
Y se concluye que el número en hexadecimal es 3867 ó 0x3867 Ejemplo: ¿Como sería en binario el número 392A que está en hexadecimal?
Y se concluye que el número en binario es 0011 1001 0010 1010 ó 11100100101010 3.- Operaciones Numéricas:Ahora que vimos un poco cómo tratar números en otros sistemas, binario y hexadecimal, ya podemos ver la parte que interesa: Cómo hacer las operaciones entre números y obtener un resultado correcto. Al hacer las operaciones y obtener un resultado podemos llegar al punto de conclusión: Dado el PID, ID, SID de mi Pokémon, ¿será Shiny?, o dado un valor del RNG para un estado X, ¿cuál será su valor en un estado X+1 o cuál fue su valor en X-4?, etc. Hay dos grandes grupos de operaciones numéricas: Las operaciones aritméticas y las operaciones en bits (bitwise y bit shift), para ambos grupos veremos las operaciones que nos interesan: 3.1.- Operaciones AritméticasSon las operaciones que comúnmente utilizamos y conocemos, entre las que se incluyen la suma, la resta, la multiplicación, la división y el residuo. Todas estas operaciones utilizadas en este contexto (a menos que se especifique lo contrario) tratan y arrojan siempre resultados enteros, es decir, no tenemos en cuenta en ningún momento los valores decimales, sino que se descartan. Esto es así porque a los ordenadores les resulta menos costoso y más rápido realizar operaciones si tratan los números con esta simplificación. Por supuesto los ordenadores pueden operar con decimales, a través de los números con coma flotante, de los que en esta guía no hablamos. La suma, la multiplicación y la resta son utilizados de igual forma que en la aritmética convencional, pero la división tiene una pequeña variante. Como se dijo, no tenemos en cuenta resultados decimales, y así la división de 8 ÷ 3 ó 7 ÷ 3 nos dan el mismo resultado de 2, aun cuando con números decimales fueran 2,667 y 2,333 respectivamente. La última operación, el residuo, es la operación que complementa la falta de uso de los decimales en la división. Esta operación tiene como resultado el residuo de la división de dos números, así la división 8 ÷ 3 ó 7 ÷ 3 tendrá como resultado de residuo 2 y 1 respectivamente. La operación de residuo se puede ver también como el número que habría que restarle al dividendo para que la división fuera entera (es decir, residuo de 0). Esta operación también se conoce como módulo. La siguiente tabla resume las operaciones y sus símbolos:
Realizar operaciones en números binarios o hexadecimales se puede aprender, pero es algo que no se explicará en la guía. Sin embargo siempre se puede pasar los números es estos sistemas a números en base 10 como ya se ha visto, y luego hacer las operaciones. De todos modos en la calculadora sí se pueden hacer las operaciones en los sistemas que ya se vieron, y además pasar los resultados a otros sistemas. El botón que indica la operación se puede ver en la tabla. 3.2.- Operaciones en Bits (Bitwise y Bit shift)Bit es el acrónimo de binary digit (dígito binario). Un bit es un dígito del sistema de numeración binario. En él se usan sólo dos dígitos, el 0 y el 1. Un bit o dígito binario puede representar uno de esos dos valores, 0 ó 1. El bit es la unidad mínima de información empleada en informática, en cualquier dispositivo digital, o en la teoría de la información. Con él, podemos representar dos valores cualquiera, como verdadero o falso, abierto o cerrado, blanco o negro, norte o sur, masculino o femenino, etc. Para entender cómo hacer las operaciones en bits debemos ver y manipular los números que estén implicados en ella como números binarios. Estas operaciones en cambio no son comúnmente utilizadas por nosotros, pero en lo sistemas computacionales son undamentales. Como se verá, se llaman operaciones en bits porque precisamente obtendremos un resultado de hacer cálculos a partir de los bits que componen los números. Para operar dos números que tengan diferente cantidad de bits, lo mejor es "igualar" la cantidad de bits de ambos, agregando tantos ceros como sean necesarios a la parte izquierda del más pequeño. De esta forma, los números 1001 y 1101101, quedarían con igual cantidad de bits si agregamos 3 ceros a la parte izquierda del primer número, tendríamos: 0001001 y 1101101. Esto es así porque las operaciones en bits entre dos números se hacen bit por bit, según la posición que tengan éstos en el número. El resultado de la operación si tenemos esto presente siempre va a dar un número igual a la cantidad de bits de los números que se operaron, y en general se tendría:
Lo dicho tendrá más lógica si vemos las tablas de verdad para cada una de las operaciones. Primero listaremos las operaciones y luego veremos cómo hacer con cada una:
Y las tablas de verdad para cada operación serían:
Revisado el 31 de mayo de 2010 a las 18:32
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|