Хранение в памяти целых чисел

Презентация по информатике на тему

Хранение в памяти целых чисел

Инфоурок › Информатика ›Презентации›Презентация по информатике на тему» Представление чисел в памяти компьютера»

Описание презентации по отдельным слайдам:

1 слайдОписание слайда:

Автор Саидова М.К. учитель информатики МБОУ СОШ №32

2 слайдОписание слайда:

Что такое система счисления? Что такое основание системы счисления? Какие системы счисления используются в ПК? Какой алфавит и основание имеет двоичная система счисления? Какой алфавит и основание имеет десятичная система счисления? Как перевести число из двоичной системы счисления в десятичную? Как перевести число из десятичной системы счисления в двоичную?

3 слайд 4 слайд 5 слайдОписание слайда:

Данные (и программы) в памяти компьютера хранятся в двоичном виде, т. е. в виде цепочек единиц и нулей.

6 слайдОписание слайда:

Представление данных в компьютере дискретно. Дискретное множество состоит из отделенных друг от друга элементов.

7 слайдОписание слайда:

Множество представимых в памяти компьютера величин ограничено и конечно. МАТЕМАТИКА: множество целых чисел дискретно, бесконечно, не ограничено ИНФОРМАТИКА: множество целых чисел дискретно, конечно, ограничено

8 слайдОписание слайда:

В памяти компьютера числа хранятся в двоичной системе счисления.

9 слайдОписание слайда:

Целые (формат с фиксированной запятой) Вещественные (формат с плавающей запятой)

10 слайдОписание слайда:

Для хранения целых неотрицательных чисел без знака отводится одна ячейка памяти (8 битов). 7 6 5 4 3 2 1 0 Номера разрядов Биты, составляющие число Минимальное число 0 Максимальное число 25510 111111112 = 1000000002 -1 = 28 – 1 = 25510 Для n-разрядного представления максимальное целое неотрицательное число равно 2n – 1.

11 слайдОписание слайда:

Пример. Представить число 5110 в двоичном виде в восьмибитовом представлении в формате целого без знака. Решение. 5110 = 1100112

12 слайдОписание слайда:

Для хранения целых чисел со знаком отводится две ячейки памяти (16 битов). Старший разряд числа определяет его знак. Если он равен 0, число положительное, если 1, то отрицательное. 5110 = 1100112 — 5110 = — 1100112 Такое представление чисел в компьютере называется прямым кодом.

13 слайдОписание слайда:

Для n-разрядного представления со знаком (с учетом выделения одного разряда на знак): минимальное отрицательное число равно – 2n-1 максимальное положительное число равно 2n-1 – 1, Целые числа в памяти компьютера — это дискретное, ограниченное и конечное множество.

14 слайдОписание слайда:

Для представления отрицательных целых чисел используется дополнительный код. Алгоритм получения дополнительного кода отрицательного числа: Число записать прямым кодом в n двоичных разрядах. Получить обратный код числа, для этого значения всех битов инвертировать, кроме старшего разряда.

К полученному обратному коду прибавить единицу. Представить число -201410 в двоичном виде в шестнадцатибитном представлении в формате целого со знаком.

Прямой код -201410 10000111 110111102 Обратный код Инвертирование 11111000 001000012 Прибавление единицы 11111000 001000012 00000000 000000012 Дополнительный код 11111000 001000102

15 слайдОписание слайда:

Алгебраическое сложение двоичных чисел Положительные слагаемые представить в прямом коде. Отрицательные слагаемые – в дополнительном.

Найти сумму кодов, включая знаковые разряды, которые при этом рассматриваются как старшие разряды. При переносе из знакового разряда единицу переноса отбрасывают.

В результате получают алгебраическую сумму в прямом коде, если эта сумма положительная, и в дополнительном, если сумма отрицательная.

16 слайдОписание слайда:

Пример 1. Найти разность 1310 – 1210 в восьмибитном представлении. Так как произошел перенос из знакового разряда, первую единицу отбрасываем, и в результате получаем 00000001. 1310 – 1210 Прямой код 00001101 10001100 Обратный код — 11110011 Дополнительный код — 11110100

17 слайдОписание слайда:

Пример 2. Найти разность 810 – 1310 в восьмибитном представлении. 810 – 1310 Прямой код 00001000 10001101 Обратный код — 11110010 Дополнительный код — 11110011

18 слайдОписание слайда:

Пример 2. Найти разность 810 – 1310 в восьмибитном представлении. В знаковом разряде стоит 1, значит результат получен в дополнительном коде. Прейдем от дополнительного кода к обратному, вычтя единицу: Прейдем от обратного кода к прямому, инвертируя все цифры, за исключением знакового (старшего) разряда: 100001012 = 510.

19 слайдОписание слайда:

Вещественные числа хранятся и обрабатываются в компьютере в формате с плавающей запятой, использующем экспоненциальную форму записи чисел. A = M  qn M – мантисса числа (правильная отличная от нуля дробь), q – основание системы счисления, n – порядок числа. Диапазон ограничен максимальными значениями M и n.

20 слайдОписание слайда:

Например, 123,45 = 0,12345 · 103 Порядок указывает, на какое количество позиций и в каком направлении должна сместиться десятичная запятая в мантиссе.

Число в формате с плавающей запятой может занимать в памяти 4 байта (обычная точность) или 8 байтов (двойная точность). При записи числа выделяются разряды для хранения знака мантиссы, знака порядка, порядка и мантиссы.

Мантисса M и порядок n определяют диапазон изменения чисел и их точность.

21 слайдОписание слайда:

§ 5 Задания № 3, 4 стр. 43

Общая информация

Источник: https://infourok.ru/prezentaciya-po-informatike-na-temu-predstavlenie-chisel-v-pamyati-kompyutera-2864324.html

Хранение в памяти целых чисел

Хранение в памяти целых чисел

Целые числа являются самыми простыми числовыми данными, с которыми работает компьютер. Целые числа хранятся в двух возможных видах: беззнаковом (для положительных целых чисел) и со знаком (для отрицательных чисел). Целые числа в компьютере хранятся в формате с фиксированной запятой.

Беззнаковые целые числа

Для беззнакового представления все разряды ячейки отводятся под представление самого числа. Поэтому, если известно, что число положительное, то выгоднее рассматривать его как беззнаковое.

Положительные целые числа занимают в памяти компьютера $1$ или $2$ байта.

В $1$-байтовом формате целые числа принимают значения от $0$ до $255$.

В $2$-байтовом формате от $0$ до $65535$.

Пример 1

Число $30_{10}=0001 \ 1110_2$ в $1$-байтовом формате:

Рисунок 1.

Число $30_{10}=0001 \ 1110_2$ в 2-байтовом формате:

Рисунок 2.

Алгоритм представления в компьютере беззнаковых целых чисел

  1. Беззнаковое целое положительное число перевести в двоичную систему счисления.

  2. Записать число в $8$ разрядах так, чтобы младший разряд числа соответствовал младшему разряду ячейки.

  3. Дополнить число, если необходимо, слева нулями до нужного числа разрядов ($8$-ми, $16$-ти, $32$-х).

Ничего непонятно?

Попробуй обратиться за помощью к преподавателям

Пример 2

Получить 8-разрядное представление числа $30$.

  1. Рисунок 3.

  2. $30_{10}=11110_2.$

  3. Дополним до $8$-ми разрядов:

\[30_{10}=00011110_2\]

Целые числа со знаком

Целые числа со знаком (отрицательные) занимают в памяти компьютера $1$, $2$ или $4$ байта, при этом самый старший (знаковый) разряд содержит информацию о знаке числа.

Если число положительное, то в знаковом разряде помещается $«0»$, если число отрицательное — $«1»$.

Целые числа со знаком в разных форматах принимают соответствующие значения:

  • в $1$-байтовом формате — от $-128$ до $127$;
  • в $2$-байтовом формате — от $-32768$ до $32767$;
  • в $4$-байтовом формате — от $-2147483648$ до $2147483647$.

Для хранения целых чисел со знаком отводится $1$ разряд для знака, а остальные — для цифр модуля числа.

Например, для хранения числа в $1$-байтовом формате ($8$ бит) $1$ разряд отводится для знака числа, остальные $7$ разрядов — для модуля числа.

Для хранения целых чисел со знаком применяется $3$ формы кода:

  • прямой;
  • обратный;
  • дополнительный.

Особенно широко используется обратный и дополнительный код, которые позволяют существенно облегчить элементарные операции: сложение, вычитание, умножение и деление.

Положительные числа в прямом, обратном и дополнительном кодах изображают двоичными кодами с цифрой $0$ в знаковом разряде.

У положительных чисел все коды одинаковы, т.е. прямой, обратный и дополнительный коды равны между собой.

Рисунок 4.

Отрицательные числа в прямом, обратном и дополнительном кодах изображаются по-разному.

  1. Прямой код числа — это его модуль, переведенный в двоичную систему с измененным старшим битом, в зависимости от знака.

    В знаковом разряде помещается цифра $1$, а в разрядах цифровой части числа — двоичный код модуля числа.

    Числа в компьютере хранятся целыми байтами; $1$, $2$, $4$ или $8$. От количества памяти зависит количество разрядов данного числа. В $1$ байте их $8$, в $2$ — $16$ и т.д. Поэтому представляемые числа нужно дополнять нулями до необходимого количества.

    Рисунок 5.

    Если числа будут занимать в памяти $2$ байта, то знаковым все равно будет самый старший, то есть: $-30_{10}=1001 \ 1110_2= 1000 \ 0000 \ 0001 \ 1110_2$

  2. Обратный код. Для операций с отрицательными числами обычно не используется прямой код, поэтому для облегчения алгоритмов выполнения арифметических операций был создан обратный код.

    Для получения обратного кода выполняется инвертирование всех цифр двоичного кода модуля числа: $0$ заменяется на $1$, а $1$ — на $0$. Знак разряда остается без изменений.

    Рисунок 6.

  3. Дополнительный код

    Для получения дополнительного кода числа к обратному коду добавляется единица к его младшему разряду.

    Рисунок 7.

Алгоритм получения дополнительного кода отрицательного числа

  1. Модуль отрицательного числа представить прямым кодом.

  2. Значение всех бит инвертировать: все $0$ заменить на $1$, а $1$ на $0$ (кроме значения знакового разряда).

  3. К младшему разряду полученного обратного кода прибавить единицу.

Пример 3

Получим $8$-разрядный дополнительный код числа $-30$:

$00011110 — \ число \mid -30\mid =30$ в прямом коде

$11100001 — \ число \ -30$ в обратном коде

$11100010 — \ число \ -30$ в дополнительном коде

Замечание 1

Целые отрицательные числа при вводе в компьютер преобразуются в обратный или дополнительный двоичный код и в таком виде хранятся и принимают участие в операциях. При выводе их из компьютера происходит обратное преобразование в отрицательные десятичные числа.

Источник: https://spravochnick.ru/informatika/kompyuternaya_arifmetika/hranenie_v_pamyati_celyh_chisel/

Урок информатики. Тема:

Хранение в памяти целых чисел

Класс: 9

Внимание! Предварительный просмотр слайдов используется исключительно в ознакомительных целях и может не давать представления о всех возможностях презентации. Если вас заинтересовала данная работа, пожалуйста, загрузите полную версию.

Цели урока:

  • Образовательные:
    • повторить понятие система счисления;
    • повторить правила перевода из любой системы счисления в 10-ю и из 10-й системы счисления в любую;
    • повторить правила перевода между 2-й, 8-й и 16-й системами счисления, используя метод триад и тетрад;
    • дать представление о представлении положительных и отрицательных числах в памяти компьютера и особенностях работы с целыми числами;
    • дать представление о разрядности ячейки памяти и диапазоне значений чисел;
    • дать представление о представлении вещественных чисел в памяти компьютера и особенностях работы компьютера с вещественными числами.
  • Развивающие:
    • развивать внимание, логическое мышление, умение анализировать, сопоставлять, делать выводы.
  • Воспитательные:
    • воспитание информационной культуры учащихся;
    • прививать интерес к предмету информатика;
    • прививать  навыки самостоятельной работы;
    • воспитание активности учащихся.

Формы организации учащихся на уроке:  индивидуальная, фронтальная

Используемое оборудование: компьютеры, интерактивная доска

Программное обеспечение: презентация к уроку, проверочный тест.

ХОД УРОКА

I. Организационный момент

Приветствие, проверка письменного домашнего задания.

II. Актуализация полученных знаний

Учащиеся (несколько человек) проходят тест на компьютерах по теме: «Системы счисления». (Приложение 1)

Для остальных учащихся фронтальный опрос.

Вопросы для фронтального опроса:

– Что такое система счисления? – Сколько цифр используются в 2-й, 8-й, 10-й, 16-й системах счисления, перечислить какие.

– Перевести число 3458 в 10-ю систему счисления.

– Перевести число 45110 в 16-ю систему счисления.
– Перевод числа 10110011012 в 8-ю и 16-ю системы счисления, используя триады и тетрады.

III. Изучение нового материала (Презентация)

Вся информация в памяти компьютера представляется в двоичном виде, т.е. с помощью нулей и единиц. Первоначально компьютеры могли работать только с числами. Теперь это числа, тексты, изображения, звук, видео.

Работа с данными любого типа сводится к обработке двоичных чисел – чисел, записываемых с помощью двух цифр – 0 и 1. Отсюда и название – «Цифровые технологии». В компьютере различаются два типа числовых величин: целые числа и вещественные числа.

Различаются способы представления чисел в памяти компьютера.

Они называются:

  • форма с фиксированной точкой (применяется к целым числам)
  • форма с плавающей точкой (применяется к вещественным числам)

Представление целых чисел в форме с фиксированной запятой

Часть памяти компьютера, в которой хранится одно число – ячейка. Минимальный размер ячейки, где может храниться целое число – 8 бит или 1 байт.
Представим число 4210  в двоичной системе счисления, а затем представим как  будет выглядеть это число в памяти компьютера.
4210 = 1010102.

Запишем полученное число в восьмиразрядную ячейку. Запись в ячейку производится с конца, то есть последняя цифра числа записывается в последний разряд ячейки, потом предпоследнюю цифру в предпоследний разряд ячейки и так далее пока не закончится число. Свободные разряды слева заполняются нулями.

Самый старший разряд (первый слева) – хранит знак числа. Если число положительное, то этот разряд равен 0, если отрицательное – 1.

Таким образом, самое большее положительное число, которое можно вписать в восьмиразрядную сетку имеет вид:

И это число 11111112 = 12710
Максимальное целое положительное число, помещающееся в восьмиразрядную ячейку, равно 127.

Рассмотрим  представление в памяти компьютера целых отрицательных чисел

Для представления целых отрицательных чисел используется дополнительный код.
Дополнительный код числа можно получить, зная следующий алгоритм:

  1. Записать внутреннее представление соответствующего ему положительного числа
  2. Записать обратный код полученного числа заменой во всех разрядах 0 на 1, и 1 на 0.
  3. К полученному числу прибавить 1.

Представим внутреннее представление числа  – 4210 в восьмиразрядной ячейке:  4210 = 1010102

1)  00101010 2)  11010101   это обратный код 3)             + 1

      11010110   получили представление числа – 4210 в восьмиразрядной ячейке.

Старший разряд получил значение 1 автоматически. Единица в старшем разряде – признак отрицательного числа.
Сложим числа 42 и – 42. Должны получить 0, проверим:

+ 00101010    11010110

   100000000     получили число, старший разряд которого выходит за пределы восьмиразрядной ячейки, таким образом восьмиразрядная ячейка заполнена нулями, т.е. полученное при сложение число равно 0.

Представление восьмиразрядного отрицательного числа – Х дополняет представление соответствующего положительного числа Х до значения 28. Поэтому представление отрицательного целого числа называется дополнительным кодом.

Диапазон представления целых чисел в восьмиразрядной ячейке:

 – 128

Источник: https://urok.1sept.ru/%D1%81%D1%82%D0%B0%D1%82%D1%8C%D0%B8/620019/

Электронный учебник — § 27. Хранение в памяти целых чисел

Хранение в памяти целых чисел

Целые числа без знака

Беззнаковые (англ. unsigned) типы данных, т. е. величины, не имеющие отрицательных значений, широко используются в вычислительной технике. Дело в том, что в задачах, решаемых на компьютерах, есть много таких значений: всевозможные счётчики (количество повторений циклов, число параметров в списке или символов в тексте), количество людей или предметов и др.

Чтобы закодировать целое число без знака, достаточно перевести его в двоичную систему счисления (см. § 11) и дополнить слева нулями до нужной разрядности. Например, число 28 записывается в 8-разрядную ячейку памяти так:

                                                                                                   0001 1100

Это же число в 16-разрядном представлении будет иметь слева ещё 8 нулей. Восьмиразрядные коды некоторых характерных чи¬сел приведены в табл. 4.1.

Минимальное значение для беззнаковых целых чисел всегда равно 0 (все разряды нулевые), а максимальное число Хmax =2K -1 СОСТОИТ из всех единиц и определяется разрядностью (количеством битовколичеством битов) К (табл. 4.2).

Возникает вопрос: что будет, если увеличить максимальное число в К-битной ячейке на единицу? Рассмотрим случай К =8 и попытаемся прибавить еденицу  к числу 25510 = 1111 11112. Добавляя дополнительный бит слева, получим: 

Отбросив несуществующий дополнительный разряд1, получаем 255 + 1 = 0. Как ни странно, именно это произойдёт в реальном компьютере. Говорят, что при К разрядах арифметика выполняется по модулю 2К, т. е. при К = 8 имеем2:

                                 (255 + 1) mod 256 » 256 mod 256 = 0.

1 На самом деле, для того чтобы обнаружить факт переполнения, этот  разряд сохраняется в специальном ynpaвляющем бите процессора, который называется битом переноса.

2 Здесь запись a mod b обозначает остаток от деления а на b.

Вместе с тем, вычитая единицу из минимального значения О, к которому добавлен старший разряд за пределами 8-битной ячейки, получим 1111 11112 = 25510 (проверьте это самостоятельно).

Можно заметить, что при многократном увеличении числа на единицу мы доходим до максимального значения и скачком возвращаемся к минимальному.

При вычитании единицы получается обратная картина — дойдя до минимума (нуля), мы сразу перескакиваем на максимум (255).

Поэтому для изображения допустимого диапазона чисел лучше подходит не отрезок числовой оси (как в математике), а окружность (рис. 4.6).

Факт переполнения всегда фиксируется процессором, но выполнение программы не прерывается. Программе (точнее, программисту) предоставляется возможность как-то реагировать на переполнение или «не заметить* его.

Целые числа со знаком

Теперь рассмотрим числа со знаком (англ. signed). Для того чтобы различать положительные и отрицательные числа, в двоич¬ном коде выделяется один бит для хранения знака числа — знаковый разряд.

По традиции для этого используют самый старший бит, причём нулевое значение в нём соответствует знаку «плюс», а единичное — знаку «минус».

Ноль формально является положительным числом, так как все его разряды, включая знаковый, нулевые.

Поскольку один бит выделяется для хранения информации о знаке, ровно половина из всех 2К чисел будут отрицательными. Учитывая, что одно значение — нулевое, положительных чисел будет на единицу меньше, т. е. допустимый диапазон значений оказывается несимметричным.

Положительные числа записываются в знаковой форме так же, как и в беззнаковой, но для значения остаётся на один разряд меньше.

А как поступить с отрицательными числами? Первое, что приходит в голову, это кодировать отрицательные значения точно так же, как и положительные, только записывать в старший бит единицу. Такой способ кодирования называется прямым кодом.

Несмотря на свою простоту и наглядность, он не применяется в компьютерах для представления целых чисел1. Это неудобно, потому что действия над числами, записанными в прямом коде, выполняются по-разному для разных сочетаний знаков чисел.

Поэтому в современных компьютерах отрицательные числа кодируются с помощью другого метода, который менее нагляден, но позволяет выполнять арифметические действия с положительными и отрицательными числами по одному и тому же алгоритму.

Как же представить целые числа, чтобы арифметика выглядела максимально просто? Попробуем, например, вычислить код, соответствующий числу —1. Для этого просто вычтем из нуля единицу:

Чтобы вычитание «состоялось», придется занять из несуществующего старшего бита единицу, что не очень естественно, но зато быстро приводит к правильному результату2. Заметим, что фактически мы вычитали не из 0, а из 256. В общем случае вычисление происходит по формуле 2К — X, где для данного примера К=8, а Х=1

1Тем не менее прямой код используется в представлении вех

2Для проверки можно прибавить к полученному коду единицу в  результате должен получиться ноль.

Однако предложенный способ перевода не слишком хорош, поскольку мы использовали дополнительный «несуществующий» разряд. Вместо этого можно использовать равносильный алгоритм:

                                                                        256 — X = (255 — X) + 1 = not X + 1.

Здесь «not» обозначает логическую операцию «НЕ» (инверсию), применяемую к каждому биту числа отдельно (все нули заменяются на единицы и

наоборот).

Итак, для получения кода целого числа (-Х) нужно:

Алгоритм А1

1) Выполнить инверсию каждого разряда двоичного

представления числа X (такой код называется обратным).

2) К полученному результату прибавить единицу.

В результате получается дополнительный код — он дополняет число до 2К.

Алгоритм А1 приводится в большинстве учебников, но его можно немного изменить так, чтобы облегчить человеку «ручные» вычисления:

Алгоритм А2

1) Вычислить число Х-1 и перевести его в двоичную систему.

2) Выполнить инверсию каждого разряда результата.

Оба алгоритма дают одинаковые результаты, но алгоритм А2 для человека существенно проще, потому что ему легче вычесть единицу в «родной» десятичной системе, чем прибавлять её в двоичной (при использовании алгоритма А1).

Наконец, оба пункта алгоритма А1 можно объединить, получив ещё один вариант:

Алгоритм A3

Выполнить инверсию всех старших битов числа, кроме последней (младшей) единицы и тех нулей, которые стоят после неё.

Например, определим дополнительный код числа «-16», которое хранится в 8-разрядной ячейке. Здесь X =16 — Используя алгоритмы А1 и А2, получаем:

Применение алгоритма A3 к числу 16 = 000100002 сводится к замене первых трёх нулей единицами: 1111 00002.

Для проверки можно сложить полученный результат с исходным числом и убедиться, что сумма обратится в ноль (перенос из старшего разряда не учитываем).

Повторное применение любого из алгоритмов А1-АЗ всегда приводит к восстановлению первоначального числа (убедитесь в этом самостоятельно). Это свойство также удобно использовать для проверки.

В таблице 4.3 показаны шестнадцатеричные и двоичные коды некоторых характерных 8-разрядных чисел.

Обратите внимание на скачок при переходе от -1 к 0 и на два граничных значения: 127 и «-128». «Кольцо» для чисел со знаком выглядит так, как показано на рис. 4.7.

Чтобы сравнить коды целых чисел без знака и со знаком, объединим обе таблицы {4.1 и 4.3) — получим табл. 4.4.

Общее количество значений со знаком и без знака одинаково, но их диапазоны сдвинуты друг относительно друга на числовой оси (рис. 4,8).

В наших рассуждениях использовались 8-разрядные числа, но все выводы справедливы для чисел любой разрядности. От числа разрядов К зависят только граничные значения Хmax и Xmin, приведённые в табл. 4.5.

ХОТЯ дополнительный код гораздо менее нагляден, чем пря¬мой, он значительно упрощает выполнение арифметических опе¬раций в компьютере. Например, вместо вычитания используется сложение с дополнительным кодом вычитаемого, поэтому не нужно проектировать специальное устройство для вычитания чисел.

Вопросы и задания

1. Чем отличается представление в компьютере целых чисел со знаком

и без знака?

2. Приведите примеры величин, которые всегда имеют целые неотрицательные значения.

3. Как представлены в компьютере целые числа без знака?

4. Как изменится диапазон

представления чисел, если увеличить количество разрядов на 1? На 2? На п?

5. Какое максимальное целое беззнаковое число можно записать с помощью К двоичных разрядов? Что произойдёт, если прибавить единицу к этому максимальному значению?

6. Как действует процессор при переполнении?

7. Почему максимальное положительное и минимальное отрицательное значения у целых двоичных чисел со знаком имеют разные абсолютные значения?

8. Верно ли, что положительные числа кодируются одинаково в знаковом и беззнаковом форматах?

9. Сформулируйте различные алгоритмы получения дополнительного

кода для отрицательного числа.

*10. Докажите, что алгоритмы Al, A2 и A3 всегда дают один и тот же

результат.

11. Какое минимальное отрицательное значение можно записать с помощью К двоичных разрядов?

*12. Может ли быть переполнение при сложении двух отрицательных чисел? Какой знак будет у результата?

13. Что получится, если правила перевода в дополнительный код применить к отрицательному числу?

14.  Как можно проверить правильность перевода в дополнительный

код?

15.  В чём главное преимущество дополнительного кода при кодировании отрицательных чисел?

16.  Почему компьютер может обойтись без вычитания?

Подготовьте сообщение

а) «Способы кодирования отрицательных целых чисел»

б) «Целочисленные типы данных в языках программирования»

Источник: https://uchebnik-rsh-3.ucoz.com/index/27_khranenie_v_pamjati_celykh_chisel/0-230

Представление чисел в компьютере. Представление целых и вещественных чисел в памяти компьютера

Хранение в памяти целых чисел

Любому, кто хоть раз задумывался в жизни о том, чтобы стать «айтишником» или системным администратором, да и просто связать судьбу с вычислительной техникой, знание о том, как происходит представление чисел в памяти компьютера, абсолютно необходимо. Ведь именно на этом основываются языки программирования низкого уровня, такие как Assembler. Поэтому сегодня мы рассмотрим представление чисел в компьютере и их размещение в ячейках памяти.

Система счисления

Если вы читаете данную статью, то, скорее всего, уже знаете об этом, но повторить стоит. Все данные в персональном компьютере хранятся в двоичной системе счисления. Это означает, что любое число необходимо представить в соответствующей форме, то есть состоящим из нулей и единиц.

Чтобы перевести привычные для нас десятичные числа к виду, понятному компьютеру, нужно воспользоваться описанным ниже алгоритмом. Существуют и специализированные калькуляторы.

Итак, для того чтобы перевести число в двоичную систему счисления, нужно взять выбранное нами значение и поделить его на 2. После этого мы получим результат и остаток (0 или 1). Результат опять делим 2 и запоминаем остаток. Данную процедуру нужно повторять до тех пор, пока в итоге также не окажется 0 или 1. Затем записываем конечное значение и остатки в обратном порядке, как мы их получали.

Именно так и происходит представление чисел в компьютере. Любое число записывается в двоичной форме, а потом занимает ячейку памяти.

Память

Как вам должно быть уже известно, минимальная единица измерения информации составляет 1 бит. Как мы уже выяснили, представление чисел в компьютере происходит в двоичном формате. Таким образом, каждый бит памяти будет занят одним значением – 1 или 0.

Для хранения больших чисел используются ячейки. Каждая такая единица содержит до 8 бит информации. Поэтому можно сделать вывод, что минимальное значение в каждом отрезке памяти может составлять 1 байт или быть восьмизначным двоичным числом.

Целые

Наконец мы подобрались к непосредственному размещению данных в компьютере. Как было уже сказано, первым делом процессор переводит информацию в двоичный формат, а только затем размещает в памяти.

Начнем мы с самого простого варианта, коим является представление целых чисел в компьютере. Память ПК отводит под этот процесс до смешного малое количество ячеек – всего одну.

Таким образом, максимум в одном слоте могут быть значения от 0 до 11111111. Давайте переведём максимальное число в привычную нам форму записи.

Х = 1 × 27 + 1 × 26 + 1 × 25 + 1 × 24 + 1 × 23 + 1 × 22 + 1 × 21 + 1 × 20 = 1 × 28 — 1 = 255.

Теперь мы видим, что в одной ячейке памяти может располагаться значение от 0 до 255. Однако это относится исключительно к целым неотрицательным числам. Если же компьютеру понадобится записать отрицательное значение, всё пройдет немного по-другому.

Отрицательные числа

Теперь давайте посмотрим, как происходит представление чисел в компьютере, если они являются отрицательными. Для размещения значения, которое меньше нуля, отводится две ячейки памяти, или 16 бит информации. При этом 15 уходят под само число, а первый (крайний левый) бит отдается под соответствующий знак.

Если цифра отрицательная, то записывается «1», если положительная, то «0». Для простоты запоминания можно провести такую аналогию: если знак есть, то ставим 1, если его нет, то ничего (0).

Оставшиеся 15 бит информации отводятся под число. Аналогично предыдущему случаю, в них можно поместить максимум пятнадцать единиц. Стоит отметить, что запись отрицательных и положительных чисел существенно отличается друг от друга.

Для того чтобы разместить в 2 ячейках памяти значение больше нуля или равное ему, используется так называемый прямой код. Данная операция производится так же, как и было описано, а максимальное А = 32766, если использовать десятичную систему счисления. Сразу хочется отметить, что в данном случае «0» относится к положительным.

Примеры

Представление целых чисел в памяти компьютера не является такой уж трудной задачей. Хотя она немного усложняется, если речь идет об отрицательном значении. Для записи числа, которое меньше нуля, используется дополнительный код.

Чтобы его получить, машина производит ряд вспомогательных операций.

  1. Сначала записывается модуль отрицательного числа в двоичном счислении. То есть компьютер запоминает аналогичное, но положительное значение.
  2. Затем проводится инвертирование каждого бита памяти. Для этого все единицы заменяются нулями и наоборот.
  3. Прибавляем «1» к полученному результату. Это и будет дополнительный код.

Приведем наглядный пример. Пусть у нас есть число Х = — 131. Сначала получаем его модуль |Х|= 131. Затем переводим в двоичную систему и записываем в 16 ячеек. Получим Х = 0000000010000011. После инвертирования Х=1111111101111100. Добавляем к нему «1» и получаем обратный код Х=1111111101111101. Для записи в 16-битную ячейку памяти минимальным числом является Х = — (215) = — 32767.

Длинные целые

Как видите, представление вещественных чисел в компьютере не так уж и сложно. Однако рассмотренного диапазона может не хватать для большинства операций. Поэтому, для того чтобы разместить большие числа, компьютер выделяет из памяти 4 ячейки, или 32 бита.

Процесс записи абсолютно не отличается от представленного выше. Так что мы просто приведем диапазон чисел, которые могут храниться в данном типе.

Хмах=2 147 483 647.

Хmin=- 2 147 483 648.

Данных значений в большинстве случаев достаточно для того, чтобы записывать и проводить операции с данными.

Представление вещественных чисел в компьютере имеет свои преимущества и недостатки.

С одной стороны, данная методика позволяет проще производить операции между целочисленными значениями, что значительно ускоряет работу процессора.

С другой стороны, данного диапазона недостаточно для решения большинства задач экономики, физики, арифметики и других наук. Поэтому теперь мы рассмотрим очередную методику для сверхвеличин.

Плавающая запятая

Это последнее, что вам необходимо знать про представление чисел в компьютере. Поскольку при записи дробей возникает проблема определения положения запятой в них, для размещения подобных цифр в компьютере используется экспоненциальная форма.

Любое число может быть представлено в следующей форме Х = m * рп. Где m – это мантисса числа, р – основание системы счисления и п – порядок числа.

Для стандартизации записи чисел с плавающей запятой используется следующее условие, согласно которому модуль мантиссы должен быть больше или равен 1/п и меньше 1.

Пусть нам дано число 666,66. Приведём его к экспоненциальной форме. Получится Х = 0,66666 * 103. Р = 10 и п = 3.

На хранение значений с плавающей запятой обычно выделяется 4 или 8 байт (32 или 64 бита). В первом случае это называется числом обычной точности, а во втором – двойной точности.

Из 4 байт, выделенных под хранение цифр, 1 (8 разрядов) отдается под данные о порядке и его знаке, а 3 байта (24 разряда) уходят на хранение мантиссы и её знака по тем же принципам, что и для целочисленных значений. Зная это, мы можем провести нехитрые расчеты.

Максимальное значение п = 11111112 = 12710. Исходя из него, мы можем получить максимальный размер числа, которое может храниться в памяти компьютера. Х=2127. Теперь мы можем вычислить максимально возможную мантиссу. Она будет равна 223 – 1 ≥ 223 = 2(10 × 2,3) ≥ 10002,3 = 10(3 × 2,3) ≥ 107. В итоге, мы получили приближенное значение.

Если теперь мы объединим оба расчета, то получим значение, которое может быть записано без потерь в 4 байта памяти. Оно будет равно Х = 1,701411 * 1038. Остальные цифры были отброшены, поскольку именно такую точность позволяет иметь данный способ записи.

Двойная точность

Поскольку все вычисления были расписаны и объяснены в предыдущем пункте, здесь мы расскажем всё очень коротко. Для чисел с двойной точностью обычно выделяется 11 разрядов для порядка и его знака, а также 53 разряда для мантиссы.

П = 11111111112 = 102310.

М = 252 -1 = 2(10*5.2) = 10005.2 = 1015.6. Округляем в большую сторону и получаем максимальное число Х = 21023 с точностью до «м».

Надеемся, информация про представление целых и вещественных чисел в компьютере, которую мы предоставили, пригодится вам в обучении и будет хоть немного понятнее, чем то, что обычно пишут в учебниках.

Источник: https://FB.ru/article/225370/predstavlenie-chisel-v-kompyutere-predstavlenie-tselyih-i-veschestvennyih-chisel-v-pamyati-kompyutera

Хранение в памяти целых и вещественных чисел

Хранение в памяти целых чисел

| Информатика и информационно-коммуникационные технологии | Планирование уроков и материалы к урокам | 10 классы | Планирование уроков на учебный год (по учебнику К.Ю. Полякова, Е.А. Еремина, полный углубленный курс, 4 часа в неделю) | Хранение в памяти целых и вещественных чисел

Предельные значения чисел

Различие между вещественными и целыми числами

Дискретность представления чисел

Программное повышение точности вычислений

Вопросы и задания

Задачи

Предельные значения чисел

На уроках математики вы никогда не обсуждали, как хранятся числа. Математика — это теоретическая наука, для которой совершенно не важно, записаны они на маленьком или большом листе бумаги, зафиксированы с помощью счётных палочек, счётов, или внутри полупроводниковой схемы. Поэтому число в математике может состоять из любого количества цифр, которое требуется в решаемой задаче.

В то же время инженеры, разрабатывающие компьютер, должны спроектировать реальное устройство из вполне определённого количества деталей. Поэтому число разрядов, отведённых для хранения каждого числа, ограничено, и точность вычислений тоже ограничена. Из-за этого при компьютерных расчётах могут возникать достаточно серьёзные проблемы.

Например, сумма двух положительных чисел может получиться отрицательной, а выражение А + В может совпадать с А при ненулевом В. В этой главе мы рассмотрим важные особенности компьютерной арифметики, которые нужно учитывать при обработке данных. В первую очередь, они связаны с тем, как размещаются целые и вещественные числа в памяти компьютера.

Предельные значения чисел

Как вы уже поняли, числа, хранящиеся в компьютере, не могут быть сколь угодно большими и имеют некоторые предельные значения.

Представим себе некоторое вычислительное устройство, которое работает с четырехразрядными неотрицательными целыми десятичными числами (рис. 4.1).

Для вывода чисел используется четырёхразрядный индикатор, на котором можно отобразить числа от 0 (все разряды числа минимальны) до 9999 (все разряды максимальны) — рис. 4.2. 

Рис. 4.1

Рис. 4.2

Вывести на такой индикатор число 10 000 невозможно: не хватает технического устройства для пятого разряда. Такая «аварийная» ситуация называется переполнением разрядной сетки или просто переполнением (англ, overflow — переполнение «сверху»).

Переполнение разрядной сетки — это ситуация, когда число, которое требуется сохранить, не умещается в имеющемся количестве разрядов вычислительного устройства.

В нашем примере переполнение возникает при значениях, больших 9999 = 104 — 1, где 4 — это количество разрядов. В общем случае, если в системе счисления с основанием В для записи числа используется К разрядов, максимальное допустимое число Стах вычисляется по аналогичной формуле 1

Сmax = BK — 1.

1 Докажите эту формулу самостоятельно, например, подсчитав количество всех возможных комбинаций значений цифр в К разрядах.

Именно эта формула для В = 2 неоднократно применялась в главе 2.

Подчеркнём, что переполнение никак не связано с системой счисления: оно вызвано ограниченным количеством разрядов устройства и не зависит от количества возможных значений в каждом из этих разрядов.

Рассмотрим теперь, что получится, если наше устройство будет работать не только с целыми, но и с дробными числами. Пусть, например, один из четырёх разрядов относится к целой части числа, а остальные три — к дробной (рис. 4.3).

Конечно, эффект переполнения сохранится и здесь: максимально допустимое число равно 9,999.

Кроме того, дробная часть числа тоже ограничена, поэтому любое число, имеющее более трёх цифр после запятой, не может быть представлено точно: младшие цифры придётся отбрасывать (или округлять).

Рис. 4.3

Не все вещественные числа могут быть представлены в компьютере точно.

При ограниченном числе разрядов дробной части существует некоторое минимальное ненулевое значение Cmin, которое можно записать на данном индикаторе (в нашем примере это 0,001, рис. 4.4). В общем случае, если число записано в системе счисления с основанием В и для хранения дробной части числа используется F разрядов, имеем

Сmin = B-F.

Рис. 4.4

Любое значение, меньшее чем Cmin, неотличимо от нуля. Такой эффект принято называть антипереполнением (англ. underflow — переполнение «снизу»).

Кроме того, два дробных числа, отличающиеся менее чем на Cmin, для компьютера неразличимы. Например, 1,3212 и 1,3214 на нашем индикаторе выглядят совершенно одинаково (рис. 4.5).

Рис. 4.5

Дополнительная погрешность появляется при переводе дробных чисел из десятичной системы счисления в двоичную. При этом даже некоторые «круглые» числа (например, 0,2) в памяти компьютера представлены неточно, потому что в двоичной системе они записываются как бесконечные дроби и их приходится округлять до заданного числа разрядов.

Так как вещественные числа хранятся в памяти приближённо, сравнивать их (особенно если они являются результатами сложных расчётов) необходимо с большой осторожностью. Пусть при вычислениях на компьютере получили X =10-6 и Y = 106.

Дробное значение X будет неточным, и произведение X • Y может незначительно отличаться от 1. Поэтому при сравнении вещественных чисел в компьютере условие «равно» использовать не рекомендуется.

В таких случаях числа считаются равными, если их разность достаточно мала по модулю. В данном примере нужно проверять условие |1 — Х • Y| < ε, где ε — малая величина, которая задаёт нужную точность вычислений.

К счастью, для большинства практических задач достаточно взять Е порядка 10-2… 10-4, а ошибка компьютерных расчётов обычно значительно меньше 2 (не более 10-7).

2 Тем не менее встречаются ситуации, когда вычислительные трудности все же возникают: классический пример — разность близких по значению десятичных дробей, отличающихся в последних значащих цифрах.

Введение разряда для знака числа не меняет сделанных выше выводов, только вместо нулевого минимального значения появляется отрицательное, которое зависит от разрядности (оно равно -9999 в первом из обсуждаемых примеров).

Следующая страницаРазличие между вещественными и целыми числами

Cкачать материалы урока

Источник: https://xn----7sbbfb7a7aej.xn--p1ai/informatika_10_136_pol/informatika_materialy_zanytii_10_136_pol_31.html

Booksm
Добавить комментарий