Тема: Представление целых чисел в компьютере
Представим память внутри компьютера в виде тетрадного листа в клетку. Каждая клетка памяти компьютера называется битом.
Бит - минимальная единица измерения памяти в компьютере.
Для хранения одной буквы, цифры или символа нужно 8 битов=1 байт.
1бит | 8 бит |
Каждая клетка хранит один разряд двоичного числа.
Основные форматы числовых данных:
-формат с фиксированной точкой для целых чисел
-формат с плавающей точкой для вещественных чисел
Для представления целых чисел есть разные способы:
Кол-во байт | Минимальное значение | Максимальное значение |
28-1 | ||
216-1 | ||
232-1 | ||
264-1 |
Порядок перехода к беззнаковомуформату с фиксированной точкой:
Нужно перевести его в 2-ую систему и систему счисления и слева дополнить нулями до стандартной разрядности.
Пример 5.1. 7710=4D16=010011012
Для 1 байт =4D16, для 2 байта =004D16, для 4 байта =0000004D16
Пример 5.2. 26710=10В16=0001000010112
Для 1 байт =10В16, для 2 байта =010В16, для 4 байта =0000010В16
|
|
Но у нас числа не всегда положительные.
Во всех системах «+» кодируется 0, а «-» 1. Крайний слева 1 бит выделяется под знак, остальные под код модуля.
Такое представление называется прямой код.
Пример 5.3. |4|10=01002=00001002
+4=000001002, -4=100001002
Недостаток такого метода – неоднозначное представление нуля:
+0=000000002, -0=100000002
Поэтому для отрицательных целых чисел был придуман дополнительный код.
Порядок построения дополнительного кода:
1. Код следующего положительного числа получается прибавлением единицы.
2. Код предыдущего отрицательного числа- вычитанием единицы из кода текущего числа.
Если сказать короче - инверция.
+ | - |
+0=00002 | -1=11112 |
+1=00012 | -2=11102 |
+2=00102 | -3=11012 |
+3=00112 | -4=11002 |
+4=01002 | -5=11012 |
+5=01012 | -6=10102 |
+6=01102 | -7=10012 |
+7=01112 | -8=10002 |
Для представления целых чисел с дополнительным кодом:
Кол-во байт | Минимальное значение | Максимальное значение |
-27 | 27-1 | |
-215 | 215-1 | |
-231 | 231-1 | |
-263 | 263-1 |
Порядок перехода к знаковому формату с фиксированной точкой:
1. Перевести модуль целого числа в 2-ую систему
2. Если число <0, то используем доп.код, инвертировав прямой код и +1 к результату.
Если число положительное, то доп.код=прямой код.
Пример 5.4. +7710=010011012=4D16
Для -7710
1. Код модуля 4D16=010011012
2. Обратный код 101100102
3. Доп.код 10110010+1=101100112
-7710=101100112=В316