Saltar al contenido principal
LibreTexts Español

2.6: Detalles - Códigos enteros

  • Page ID
    82271
  • \( \newcommand{\vecs}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \) \( \newcommand{\vecd}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash {#1}}} \)\(\newcommand{\id}{\mathrm{id}}\) \( \newcommand{\Span}{\mathrm{span}}\) \( \newcommand{\kernel}{\mathrm{null}\,}\) \( \newcommand{\range}{\mathrm{range}\,}\) \( \newcommand{\RealPart}{\mathrm{Re}}\) \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\) \( \newcommand{\Argument}{\mathrm{Arg}}\) \( \newcommand{\norm}[1]{\| #1 \|}\) \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\) \( \newcommand{\Span}{\mathrm{span}}\) \(\newcommand{\id}{\mathrm{id}}\) \( \newcommand{\Span}{\mathrm{span}}\) \( \newcommand{\kernel}{\mathrm{null}\,}\) \( \newcommand{\range}{\mathrm{range}\,}\) \( \newcommand{\RealPart}{\mathrm{Re}}\) \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\) \( \newcommand{\Argument}{\mathrm{Arg}}\) \( \newcommand{\norm}[1]{\| #1 \|}\) \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\) \( \newcommand{\Span}{\mathrm{span}}\)\(\newcommand{\AA}{\unicode[.8,0]{x212B}}\)

    Hay muchas maneras de representar enteros como patrones de bits. Todos sufren de una incapacidad para representar arbitrariamente números enteros grandes en un número fijo de bits. Se dice que un cálculo que produce un resultado fuera de rango se desborda.

    Las representaciones más utilizadas son código binario para enteros sin signo (por ejemplo, direcciones de memoria), complemento de 2 para enteros con signo (por ejemplo, aritmética ordinaria) y código gris binario para instrumentos que miden cantidades cambiantes.

    La siguiente tabla da cinco ejemplos de códigos enteros de 4 bits. El MSB (bit más significativo) está a la izquierda y el LSB (bit menos significativo) a la derecha.

    \(\overbrace{\qquad\qquad\qquad\qquad\qquad\qquad\qquad\qquad\qquad\qquad\qquad\quad}^{\text{Unsigned Integers}}\) \(\overbrace{\qquad\qquad\qquad\qquad\qquad\qquad\qquad\qquad\qquad\qquad\qquad\qquad}^{\text{Signed Integers}}\)
    Código Binario Código Gris Binario Complemento de 2 Signo/Magnitud Complemento de 1
    \(\text{Range}\rightarrow\) [0, 15] [0, 15] [-8, 7] [-7, 7] [-7, 7]
    -8 1000
    -7 1001 1111 1000
    -6 1010 1110 1001
    -5 1011 1101 1010
    -4 1100 1100 1011
    -3 1101 1011 1100
    -2 1110 1010 1101
    -1 1111 1001 1110
    0 0000 0000 0000 0000 0000
    1 0001 0001 0001 0001 0001
    2 0010 0011 0010 0010 0010
    3 0011 0010 0011 0011 0011
    4 0100 0110 0100 0100 0100
    5 0101 0111 0101 0101 0101
    6 0110 0101 0110 0110 0110
    7 0111 0100 0111 0111 0111
    8 1000 1100
    9 1001 1101
    10 1010 1111
    11 1011 1110
    12 1100 1010
    13 1101 1011
    14 1110 1001
    15 1111 1000
    Tabla 2.3: Códigos enteros de cuatro bits

    Código Binario

    Este código es para enteros no negativos. Para el código de longitud\(n\), los 2\(^n\) patrones representan enteros de 0 a 2\(^n\) − 1. El LSB (bit menos significativo) es 0 para pares y 1 para enteros impares.

    Código Gris Binario

    Este código es para enteros no negativos. Para el código de longitud\(n\), los 2\(^n\) patrones representan enteros de 0 a 2\(^n\) −1. Los dos patrones de bits de enteros adyacentes difieren exactamente en un bit. Esta propiedad hace que el código sea útil para sensores donde el entero que se está codificando podría cambiar mientras una medición está en progreso. El siguiente homenaje anónimo apareció en la columna de Martin Gardner “Mathematical Games” en Scientific American, agosto de 1972, pero en realidad se conocía mucho antes.

    El código gris binario es divertido, f

    o con ello se pueden hacer COSAS EXTRAÑAS...

    Quince, como saben, es uno oh oh oh,

    mientras que diez es uno uno uno uno uno.

    Complemento de 2

    Este código es para enteros, tanto positivos como negativos. Para un código de longitud\(n\), los 2\(^n\) patrones representan números enteros −2\(^{n−1}\) a 2\(^{n−1}\) −1. El LSB (bit menos significativo) es 0 para pares y 1 para enteros impares. Donde se superponen, este código es lo mismo que el código binario. Este código es ampliamente utilizado.

    Signo/Magnitud

    Este código es para enteros, tanto positivos como negativos. Para el código de longitud\(n\), los 2\(^n\) patrones representan enteros − (2\(^{n−1}\) − 1) a 2\(^{n−1}\) − 1. El MSB (bit más significativo) es 0 para números enteros positivos y 1 para números enteros negativos; los otros bits llevan la magnitud. Donde se superponen, este código es lo mismo que el código binario. Si bien conceptualmente simple, este código es incómodo en la práctica. Sus representaciones separadas para +0 y -0 no son generalmente útiles.

    Complemento de 1

    Este código es para enteros, tanto positivos como negativos. Para el código de longitud\(n\), los 2\(^n\) patrones representan enteros − (2\(^{n−1}\) − 1) a 2\(^{n−1}\) − 1. El MSB es 0 para los enteros positivos; los enteros negativos se forman complementando cada bit del entero positivo correspondiente. Donde se superponen, este código es lo mismo que el código binario. Este código es incómodo y rara vez se usa hoy en día. Sus representaciones separadas para +0 y -0 no son generalmente útiles.


    This page titled 2.6: Detalles - Códigos enteros is shared under a CC BY-NC-SA 4.0 license and was authored, remixed, and/or curated by Paul Penfield, Jr. (MIT OpenCourseWare) via source content that was edited to the style and standards of the LibreTexts platform; a detailed edit history is available upon request.