025:iniciacion

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anterior Revisión previa
Próxima revisión
Revisión previa
025:iniciacion [d/m/Y H:i] – [Representación en base 2] miguel025:iniciacion [d/m/Y H:i] (actual) – [Fracciones en binario] miguel
Línea 33: Línea 33:
 ==== Binario en el Spectrum ==== ==== Binario en el Spectrum ====
  
-La operación de conversión de binario en decimal está resuelta en el Spectrum con el comando BIN. Pruebe el siguiente comando directo PRINT BIN 11111111 y el ordenador imprimirá en pantalla el número 255, que es su equivalente decimal. Efectivamente, puesto que el binario **11111111 = 1 x 2"X 2I X 1+ 1 X 2+ 1 X 2J + 1 x 25+ 1 x 2"+ 1 x 27 = 1 + 2 + 4 + 8+ 16 + 32 + 64 + 128 = 255** en base diez.+La operación de conversión de binario en decimal está resuelta en el Spectrum con el comando BIN. Pruebe el siguiente comando directo PRINT BIN 11111111 y el ordenador imprimirá en pantalla el número 255, que es su equivalente decimal. Efectivamente, puesto que el binario 11111111 = 1 x 2<sup>0</sup> X 2<sup>1</sup> + 1 X 2<sup>2</sup> + 1 X 2<sup>3</sup> + 1 X 2<sup>4</sup> + 1 x 2<sup>5</sup> 1 x 2<sup>6</sup> + 1 x 2<sup>7</sup> = 1 + 2 + 4 + 8 + 16 + 32 + 64 + 128 = 255 en base diez.
  
 La operación inversa, es decir, dado un número en base diez calcular cual es su equivalente en base dos, no está implementada en el Spectrum. El método para esta conversión se denomina de divisiones sucesivas. Consiste en dividir el número entre dos y el cociente de esta división volver a dividirlo entre dos, y así sucesivamente hasta encontrar un cociente inferior a dos (es decir 1). Veamos un ejemplo: calculemos el equivalente binario del decimal 57: La operación inversa, es decir, dado un número en base diez calcular cual es su equivalente en base dos, no está implementada en el Spectrum. El método para esta conversión se denomina de divisiones sucesivas. Consiste en dividir el número entre dos y el cociente de esta división volver a dividirlo entre dos, y así sucesivamente hasta encontrar un cociente inferior a dos (es decir 1). Veamos un ejemplo: calculemos el equivalente binario del decimal 57:
  
-**57! 2 17 28 L2_ 1 08 141 2 0 0 7 Li_1 312**+{{:025:iniciacion_02.jpg?250|}}
  
 Hemos puesto dentro de un círculo los restos de las divisiones y el último cociente. El equivalente binario se construye tomando estos números de abajo a arriba, es decir empezando por el último cociente, y escribiéndolos de izquierda a derecha. Entonces: 57D = 111001B. Convendremos en expresar la base en que se representa el número añadiendo al final de éste la letra mayúscula inicial de la base. Hemos puesto dentro de un círculo los restos de las divisiones y el último cociente. El equivalente binario se construye tomando estos números de abajo a arriba, es decir empezando por el último cociente, y escribiéndolos de izquierda a derecha. Entonces: 57D = 111001B. Convendremos en expresar la base en que se representa el número añadiendo al final de éste la letra mayúscula inicial de la base.
Línea 58: Línea 58:
 ==== Fracciones en binario ==== ==== Fracciones en binario ====
  
-Los números no enteros también admiten representación polinomial. En base diez sabemos que todo número fraccionario entre cero y uno se expresa como el cero seguido de un punto, y a la derecha de este, el dígito de las décimas, centésimas, milésimas, etc. Estos dígitos tienen peso igual a **10-1 (= 0.1), 10-2 (= ().() I), 10 3 (= 0.001),** etc. respectivamente. Por ejemplo:+Los números no enteros también admiten representación polinomial. En base diez sabemos que todo número fraccionario entre cero y uno se expresa como el cero seguido de un punto, y a la derecha de este, el dígito de las décimas, centésimas, milésimas, etc. Estos dígitos tienen peso igual a 10<sup>-1</sup> (= 0.1), 10<sup>-2</sup> (= 0.01), 10<sup>-3</sup> (= 0.001), etc. respectivamente. Por ejemplo:
  
-El decimal **0.347 = 3 x 10 1 + 4 x 10 2 + 7 x I0"3 = 0.3 + 0.04 + 0.07.** Es decir, tres décimas más cuatro centésimas más siete milésimas.+El decimal 0.347 = 3 x 10<sup>-1</sup> + 4 x 10<sup>-2</sup> + 7 x 10<sup>-3</sup> = 0.3 + 0.04 + 0.07. Es decir, tres décimas más cuatro centésimas más siete milésimas.
  
-En base dos, los pesos para los dígitos a la derecha del punto serán: *2~' (= 1/2), 2 2(= 1/4), 2-3 (= 1/8),** etc. Por ejemplo:+En base dos, los pesos para los dígitos a la derecha del punto serán: 2<sup>-1</sup> (= 1/2), 2<sup>-2</sup> (= 1/4), 2<sup>-3</sup> (= 1/8), etc. Por ejemplo:
  
-El binario **0.011 =0 x 2"' + 1 x 2~2 + 1 x 2~3 = /4 + /8 = 3/8en base diez.+El binario 0.011 =0 x 2<sup>-1</sup> + 1 x 2<sup>2</sup> + 1 x 2<sup>3</sup> 1/4 + 1/8 = 3/8 en base diez.
  
 Como vemos, el proceso de conversión de binario a decimal para un número fraccionario entre cero y uno es idéntico al de números enteros, teniendo en cuenta los pesos de los dígitos a la derecha del punto. Como vemos, el proceso de conversión de binario a decimal para un número fraccionario entre cero y uno es idéntico al de números enteros, teniendo en cuenta los pesos de los dígitos a la derecha del punto.
Línea 70: Línea 70:
 Hagamos algunos ejemplos: Hagamos algunos ejemplos:
  
-**101.1 IIB22 + 0 x 2x 2"x 2""' + 1 x 2~2 + x 2~3 = 4 + 1 + 1/2 + 1/4+ 1/8 = 5+ 7/8 = 47/8** en base diez.+101.101B2<sup>2</sup> + 0 x 2<sup>1</sup> x 2<sup>0</sup> x 2<sup>-1</sup> + 1 x 2<sup>-2</sup> x 2<sup>-3</sup> = 4 + 1 + 1/2 + 1/4 + 1/8 = 5 + 7/8 = 47/8 en base diez.
  
 En el ejemplo anterior obsérvese que 101.111B = 101B + 0.111B, lo que permite, evidentemente, convertirlo a decimal en un solo paso. Como se ve, la regla que expusimos para la conversión de números enteros, sumar los pesos de las posiciones en que haya unos es absolutamente general. En el ejemplo anterior obsérvese que 101.111B = 101B + 0.111B, lo que permite, evidentemente, convertirlo a decimal en un solo paso. Como se ve, la regla que expusimos para la conversión de números enteros, sumar los pesos de las posiciones en que haya unos es absolutamente general.
Línea 93: Línea 93:
  
 0.6 x 2 = 1.2 --- 1 0.6 x 2 = 1.2 --- 1
 +
 0.2 x 2 = 0.4 --- 0 0.2 x 2 = 0.4 --- 0
 +
 0.4 x 2 = 0.8 --- 0 0.4 x 2 = 0.8 --- 0
 +
 0.8 x 2 = 1.6 --- 1 0.8 x 2 = 1.6 --- 1
 +
 0.6 x 2 = 1.2 --- 1 0.6 x 2 = 1.2 --- 1
  
Línea 106: Línea 110:
 En el tercero y cuarto artículos de esta serie trataremos sobre la representación interna, en la memoria del Spectrum, de los números enteros y fraccionarios, positivos y negativos. En el tercero y cuarto artículos de esta serie trataremos sobre la representación interna, en la memoria del Spectrum, de los números enteros y fraccionarios, positivos y negativos.
  
-Por último, los números en base dos pueden manejarse en notación científica de forma similar a como lo hacemos en base diez. Por ejemplo: en base diez **2.357 x 10:, = 23.57 x 102 = 0.23 5 7 104 = 2357.** Es decir, aumentamos o disminuimos en una unidad la potencia de diez al correr el punto una posición hacia la izquierda o derecha respectivamente.+Por último, los números en base dos pueden manejarse en notación científica de forma similar a como lo hacemos en base diez. Por ejemplo: en base diez 2.357 x 10<sup>3</sup> = 23.57 x 10<sup>2</sup> = 0.2357 10<sup>4</sup> = 2357. Es decir, aumentamos o disminuimos en una unidad la potencia de diez al correr el punto una posición hacia la izquierda o derecha respectivamente.
  
-En base dos, análogamente, podemos poner: **1.010 x 23 = 0.1010 x 24 = 10.10 x 23 = 0.00101 x 2= 1010 = 10100 x 2_l.**+En base dos, análogamente, podemos poner: 1.010 x 2<sup>3</sup> = 0.1010 x 2<sup>4</sup> = 10.10 x 2<sup>3</sup> = 0.00101 x 2<sup>6</sup> = 1010 = 10100 x 2<sup>-1</sup>.
  
 El siguiente programa le permitirá convertir un número entero y positivo en base diez a su equivalente en cualquier otra base comprendida entre dos y dieciséis, ambas inclusive. El siguiente programa le permitirá convertir un número entero y positivo en base diez a su equivalente en cualquier otra base comprendida entre dos y dieciséis, ambas inclusive.
  • 025/iniciacion.1300033720.txt.gz
  • Última modificación: d/m/Y H:i
  • por miguel