Skip to main content
LibreTexts - Ukrayinska

2.6: Деталь - Цілочисельні коди

  • Page ID
    29852
  • \( \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}}\)

    Існує багато способів представлення цілих чисел як бітових шаблонів. Всі страждають від неможливості представляти довільно великі цілі числа у фіксованій кількості бітів. Обчислення, яке виробляє результат поза діапазоном, як кажуть, переповнюється.

    Найбільш часто використовуваними зображеннями є двійковий код для цілих чисел без знаку (наприклад, адреси пам'яті), доповнення 2 для цілих знаків (наприклад, звичайна арифметика) та двійковий сірий код для приладів вимірювання змінних величин.

    У наступній таблиці наведено п'ять прикладів 4-розрядних цілочисельних кодів. MSB (найбільш значний біт) знаходиться зліва, а LSB (найменш значний біт) праворуч.

    \(\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}}\)
    Двійковий код Двійковий сірий код 2 доповнення Знак/Величина 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
    Таблиця 2.3: Чотирибітні цілочисельні

    Двійковий код

    Цей код призначений для цілих невід'ємних чисел. Для коду довжини\(n\) 2\(^n\) шаблони представляють цілі числа від 0 до 2\(^n\) − 1. LSB (найменш значущий біт) дорівнює 0 для парних і 1 для непарних цілих чисел.

    Двійковий сірий код

    Цей код призначений для цілих невід'ємних чисел. Для коду довжини\(n\) 2\(^n\) шаблони представляють цілі числа від 0 до 2\(^n\) −1. Два бітові шаблони суміжних цілих чисел відрізняються рівно на один біт. Ця властивість робить код корисним для датчиків, де кодується ціле число може змінюватися під час вимірювання. Наступна анонімна данина з'явилася в колонці Мартіна Гарднера «Математичні ігри» в Scientific American, серпень 1972 року, але насправді була відома набагато раніше.

    Бінарний сірий код весело, f

    або з ним ДИВНІ РЕЧІ можна зробити...

    П'ятнадцять, як відомо, один ой ой ой,

    в той час як десять один один один.

    2 доповнення

    Цей код призначений для цілих чисел, як позитивних, так і негативних. Для коду довжини\(n\) 2\(^n\) шаблони представляють цілі числа від −2\(^{n−1}\) до 2\(^{n−1}\) −1. LSB (найменш значущий біт) дорівнює 0 для парних і 1 для непарних цілих чисел. Там, де вони перекриваються, цей код збігається з двійковим кодом. Цей код широко використовується.

    Знак/Величина

    Цей код призначений для цілих чисел, як позитивних, так і негативних. Для коду довжини\(n\) 2\(^n\) шаблони представляють цілі числа − (2\(^{n−1}\) − 1) через 2\(^{n−1}\) − 1. MSB (найбільш значущий біт) дорівнює 0 для додатних і 1 для від'ємних цілих чисел; інші біти несуть величину. Там, де вони перекриваються, цей код збігається з двійковим кодом. Хоча концептуально простий, цей код незручний на практиці. Його окремі уявлення для +0 та -0 взагалі не корисні.

    1 доповнення

    Цей код призначений для цілих чисел, як позитивних, так і негативних. Для коду довжини\(n\) 2\(^n\) шаблони представляють цілі числа − (2\(^{n−1}\) − 1) через 2\(^{n−1}\) − 1. MSB дорівнює 0 для натуральних чисел; від'ємні цілі числа утворюються шляхом доповнення кожного біта відповідного натурального цілого числа. Там, де вони перекриваються, цей код збігається з двійковим кодом. Цей код незручний і рідко використовується сьогодні. Його окремі уявлення для +0 та -0 взагалі не корисні.