Numeric representation - Chapter 2 Flashcards
¿Qué es un número?
Dispositivo intelectual intangible y abstracto que denota cantidad.
La naturaleza abstracta del número permite múltiples representaciones, cada una con diferentes eficiencias y usos en computación.
¿Qué es la representación de un número?
Secuencia de símbolos que expresan un número. Los símbolos en sí (como “100”) son solo tinta formando glifos, no el número real.
La distinción entre valor y representación es crucial en programación ya que afecta el procesamiento, almacenamiento y eficiencia del código.
¿Qué es un sistema de numeración posicional?
Sistema donde el valor de cada dígito depende de su posición, representando diferentes potencias de la base del sistema.
Permite representación compacta y eficiente de números grandes, fundamental para el almacenamiento y procesamiento computacional.
¿Qué es un sistema de numeración no posicional?
Sistema donde cada símbolo mantiene su valor independientemente de su posición en la secuencia.
Sus limitaciones de espacio y eficiencia justifican el uso de sistemas posicionales en computación.
¿Qué es una conversión string a número?
Proceso de la biblioteca runtime que transforma caracteres a la forma binaria interna requerida por la CPU.
Operación costosa que impacta el rendimiento del programa, requiriendo múltiples pasos de procesamiento por carácter.
¿Qué es la representación binaria interna?
Formato binario que los sistemas de computadora utilizan para representar valores, optimizado para tamaños específicos.
Permite: 1. Uso eficiente de memoria 2. Prevención de errores de cálculo 3. Optimización de operaciones CPU
¿Qué es un bit?
Unidad mínima de datos en computación binaria, representa dos valores posibles (0 o 1).
Base fundamental de toda representación digital, permite codificar cualquier par de estados opuestos.
¿Qué es un byte?
Secuencia de 8 bits, unidad mínima direccionable eficientemente por la CPU en memoria.
Define la granularidad básica del acceso a memoria y organización de datos en sistemas computacionales.
¿Qué son los números con signo?
Valores que pueden ser positivos o negativos, usando el sistema de complemento a dos con el bit más significativo (HO bit) como bit de signo.
Permiten representar rangos negativos pero reducen a la mitad el rango de valores positivos disponibles en el mismo número de bits.
¿Qué es el sistema hexadecimal?
Sistema de numeración base-16 donde cada dígito representa una potencia de 16, usando símbolos 0-9 y A-F para los 16 dígitos posibles.
Cada dígito hexadecimal representa exactamente 4 bits binarios, permitiendo una representación más compacta y legible del código binario.
¿Qué es el sistema octal?
Sistema de numeración base-8 usando dígitos 0-7, donde cada dígito octal representa exactamente 3 bits binarios.
Óptimo para sistemas computacionales de 12 y 36 bits, aunque menos común en sistemas modernos que usan potencias de 2.
¿Cuál es el proceso de conversión entre hexadecimal y binario?
Sustituir cada dígito hexadecimal por su equivalente de 4 bits: A = 1010, B = 1011, C = 1100, D = 1101, E = 1110, F = 1111.
Permite traducir rápidamente entre representaciones sin cálculos complejos, fundamental para depuración y análisis de código binario.
¿Cuál es el proceso de conversión entre octal y binario?
Sustituir cada dígito octal por su equivalente de 3 bits. Ejemplo: 123₈ → 001 010 011₂.
Facilita la manipulación de datos en sistemas que usan múltiplos de 3 bits.
¿Qué es un word en arquitectura 80x86?
Colección de 16 bits organizada en 2 bytes, con bit 0 como menos significativo y bit 15 como más significativo.
Define la unidad básica de procesamiento en arquitecturas x86, afectando cómo se organizan y acceden los datos.
¿Qué es un double word?
Secuencia de 32 bits organizada como 2 words o 4 bytes consecutivos.
Unidad fundamental para procesadores de 32 bits, permite representar valores más grandes y direcciones de memoria.
¿Qué es un quad word?
Secuencia de 64 bits compuesta por 2 double words, 4 words u 8 bytes.
Esencial para operaciones de 64 bits y valores de punto flotante de doble precisión.
¿Qué es un TByte en arquitectura Intel?
Tipo de dato de 80 bits (10 bytes) específico de Intel, usado para valores de punto flotante de precisión extendida.
Permite cálculos de alta precisión y es crucial para operaciones financieras y científicas precisas.
¿Cómo funciona el algoritmo de conversión de número a string?
- Inicializar string vacío 2. Dividir número entre 10, obtener cociente y residuo 3. Convertir residuo a carácter 4. Insertar carácter al inicio del string 5. Repetir con el cociente hasta llegar a 0.
Proceso computacionalmente costoso que requiere múltiples divisiones, crítico para optimización de rendimiento.
¿Cómo funciona el algoritmo de conversión de string a número?
- Inicializar acumulador en 0 2. Por cada dígito de izquierda a derecha: - Convertir carácter ASCII a valor numérico - Multiplicar acumulador por 10 - Sumar nuevo dígito.
Operación frecuente en entrada/salida que puede impactar significativamente el rendimiento si se usa en exceso.
¿Cómo representan diferentes lenguajes los números hexadecimales?
- C/C++/Java: prefijo 0x (0xDEAD) - MASM: sufijo h con 0 inicial si necesario (0DEADh) - Pascal: prefijo $ ($DEAD) - Visual Basic: prefijo &H (&HDEAD)
El prefijo/sufijo permite al compilador distinguir entre identificadores y valores hexadecimales.
¿Cómo representan diferentes lenguajes los números octales?
- C/derivados: prefijo 0 (0123) - MASM: sufijo Q (123Q) - Swift: prefijo 0o (0o123) - Visual Basic: prefijo &O (&O123)
Crucial para mantener código legacy y sistemas Unix antiguos donde la notación octal es común.