Una vez fui un jugador casual de Minecraft (¡¿Qué? ¡¿Existen ?! ¡Sí!), Nunca un entusiasta, pero creo que puedo responder esta pregunta razonablemente bien. Una respuesta realmente completa es poco práctica aquí, pero trataré de explicarla lo mejor que pueda.
Componentes mayores
- 2 decodificadores de BCD a binario
- 3 decodificadores de binario a BCD
- Sumadores y sustractores rápidos de BCD
- Memoria
- Pantalla de 25 dígitos
- Sumadores, sustractores, multiplicadores y divisores
Algunos de estos son bastante complejos, pero se pueden hacer con operaciones lógicas simples para las que Minecraft tiene un soporte muy robusto, como se ve en la Figura 1. Para obtener más información sobre los circuitos de redstone de Minecraft, consulte http://www.minecraftwiki.net/wik… .
Figura 1: Puertas lógicas de Minecraft.
- ¿Qué tan útil es tomar un curso de ‘lógica’ para matemáticos?
- ¿Cuáles son las diferencias intuitivas entre la aritmética verdadera, la aritmética de Peano, la aritmética de segundo orden, ZFC, etc.?
- Falacias Matemáticas: ¿Cómo podemos probar que 1 + 1 = 7?
- ¿Tomar una introducción formal al curso de lógica puede ayudarme a escribir mejores pruebas en matemáticas o la lógica en filosofía es diferente de la matemática pura?
- ¿Cuáles son los requisitos previos para estudiar cosas como la verificación formal (software y hardware), la teoría del aprendizaje formal, la demostración automatizada de teoremas y los fundamentos de los lenguajes de programación?
Organización general
No diseñé la calculadora, así que no tengo forma de saber exactamente cómo lo hizo el tipo, pero sospecho que se parece más o menos al diagrama de la Figura 2. No debería sorprender que el teclado controle la calculadora. Cuando el tipo pisa los botones, los operandos y la operación se almacenan en la memoria. Cuando ambos números están disponibles (señalados presionando el botón igual), las sumas, diferencias, productos, cocientes y residuos probablemente se calculan de una vez. Es responsabilidad de la lógica de control informar a la pantalla qué salida debe mostrar.
Figura 2: Descripción general de alto nivel de todo el sistema.
¿Binario? BCD?
¿Qué es todo esto sobre la conversión de binario a BCD? Binario es un sistema numérico de dos valores representado por secuencias de ceros y unos (01011110101). El decimal codificado en binario (BCD) es una convención para representar dígitos decimales en binario (0 = 0000, 1 = 0001, 2 = 0010, etc.). Una representación binaria de un número es más fácil de manejar con compuertas lógicas y más compacta, pero, a menos que desee leer binarios, necesita la representación BCD para mostrar cada dígito decimal en la pantalla.
Pantalla
Figura 3: una pantalla de siete segmentos.
Probablemente haya visto una pantalla de siete segmentos (Figura 3) en un reloj despertador digital, reloj, microondas, etc. Una pantalla de siete segmentos toma un dígito BCD como entrada e ilumina los segmentos apropiados (por ejemplo, BCD 0011 (3) se iluminaría segmentos superiores A, B, G, C y D). La pantalla en la calculadora de Minecraft es esencialmente una matriz de estos que consiste en bloques de pistón (Figura 4). Muy inteligente.
Figura 4: Un bloque de pistón (¡haga clic para verlo en acción!).
Aritmética con puertas lógicas
La suma de un solo dígito en binario es muy simple. Es tan simple que enumeraré todas las posibilidades para a + b aquí.
- 0 + 0 = 0
- 0 + 1 = 1
- 1 + 0 = 1
- 1 + 1 = 10 (1 + 1 = 2 en decimal, tenga en cuenta que dado que los dígitos solo tienen dos valores aquí, debe llevar a la siguiente posición. El dígito inferior generalmente se conoce como la suma y el dígito superior como el llevar)
Los dígitos de suma y acarreo se pueden determinar con funciones booleanas.
- sum = a XOR b (1 cuando exactamente una de sus entradas es 1)
- carry = a AND b (1 cuando ambas entradas son 1)
Figura 5: Un sumador de un solo dígito sin llevar.
Figura 6: Un sumador de un solo dígito con un carry in.
Las cosas son un poco más complicadas si desea tener en cuenta el acarreo de un dígito inferior (Figura 6) pero luego puede encadenar algunas para agregar
números cada vez más grandes (Figura 7).
Figura 7: Una cadena de sumadores completos.
Desafortunadamente, este no es exactamente el sumador en la calculadora de Minecraft. Hizo sumadores que operan en representaciones de BCD para acelerar esas operaciones (elimina una conversión de binario a BCD y viceversa). La multiplicación y la división son aún más complicadas, así que no voy a entrar en ellas. Esperemos que esto te dé una idea general de cómo funciona.