А.А. Вылиток - Представление чисел в ЭВМ (1056117)
Текст из файла
А. А. ВылитокПредставление чисел в ЭВМ1. Информация и данныеИнформация (от лат. information — разъяснение, изложение) — содержание(смысл) сообщения или сигнала, сведения, рассматриваемые в процессе их передачиили восприятия. При помощи компьютеров (ЭВМ) информация может передаваться вразличных формах: число, текст, аудио, видео и другие.Информация воспринимается человеком и может вызвать у него ту или инуюреакцию. Разные люди из одного и того же сообщения могут извлечь разноеколичество информации.
Профессиональный музыкант, например, способен по нотнойзаписи музыкального произведения получить больше сведений о его исполнении, чемпрограммист, а программист по тексту программы может рассказать о ее поведениибольше, чем музыкант.Компьютеры имеют дело не с информацией, а с данными. Получив исходныеданные, они «механически» перерабатывают их по определенным алгоритмам ввыходные данные (результаты), из которых человеку обычно легче извлекатьинформацию, чем из исходных данных. Получив на входе арифметическое выражение«(13+27)•2», компьютер на выход выдает эквивалентное выражение «80», значение(смысл) которого человеку воспринять легче (не надо совершать в уме или на бумагеарифметические действия).2.
Представление данных в компьютереОбычно входные и выходные данные представляются в форме, удобной длячеловека. Числа люди привыкли изображать в десятичной системе счисления. Длякомпьютера удобнее двоичная система. Это объясняется тем, что технически гораздопроще реализовать устройства (например, запоминающий элемент) с двумя, а не сдесятью устойчивыми состояниями (есть электрический ток — нет тока, намагничен —не намагничен и т.п.). Можно считать, что одно из двух состояний означает единицу,другое — ноль.Любые данные (числа, символы, графические и звуковые образы) в компьютерепредставляются в виде последовательностей из нулей и единиц. Этипоследовательности можно считать словами в алфавите {0, 1}, так что обработкуданных внутри компьютера можно воспринимать как преобразование слов из нулей иединиц по правилам, зафиксированным в микросхемах процессора.
Такой взглядроднит вычислительные машины с абстрактными вычислителями. Вспомните машиныТьюринга или нормальные алгоритмы Маркова.Элементпоследовательностиизнулейиединиц(члентакойпоследовательности) называют битом. Именительный падеж — бит (сокр. от англ. bit,BInary uniT — двоичный разряд).Отображение внешней информации во внутреннее представление называетсякодированием. Кодом (франц.
code, от лат. codex — свод законов) называют как самспособ отображения, так и множество слов (кодовых комбинаций), используемых прикодировании.-1-3. Представление целых чиселДля представления чисел в ЭВМ обычно используют битовые наборы —последовательности нулей и единиц фиксированной длины.
Организовать обработкунаборов фиксированной длины технически легче, чем наборов переменной длины.Позиция в битовом наборе называется разрядом. В ЭВМ разрядом называют такжечасть регистра (или ячейки памяти), хранящую один бит.3.1. Целые числа без знакаКак определить, какое целое число представляет тот или иной битовый набор?Возможны разные способы. Например, можно считать, что представляемое число равноколичеству единиц в битовым наборе («единичная» система счисления). Такой способпозволяет представить всего k различных целых чисел от 0 до k − 1, где k — длинанабора. Очевидно, что этот способ неэкономный — одному и тому же числу могутсоответствовать несколько различных наборов.
Количество всевозможных битовыхнаборов длины k равно 2k, поэтому выгоднее различным наборам поставить всоответствие различные числа. Это позволит представить 2k различных чисел. Обычнорассматривают диапазон целых чисел [N, N + 2k). При N = 0 имеем представлениебеззнаковых (неотрицательных) чисел от 0 до 2k − 1.Существует всего (2k)! (количество перестановок из 2k элементов) способовзакодировать беззнаковые числа битовыми наборами. Среди всех этих теоретическивозможных способов представления чисел наиболее удобен такой: битовый набор,соответствующий числу, является k-разрядной записью этого числа в двоичной системесчисления. Таким образом, можно реализовать арифметические операции над числами,используя известные школьные алгоритмы поразрядной обработки для битовыхнаборов.3.2.
Целые числа со знакомДля представления знаковых целых чисел используются три способа:1) прямой код;2) обратный код;3) дополнительный код.Все три способа используют самый левый (старший) разряд битового наборадлины k для кодирования знака числа: знак «плюс» кодируется нулем, а «минус» —единицей. Остальные k − 1 разрядов (называемые мантиссой или цифровой частью)используются для представления абсолютной величины числа.3.2.1. Положительные целые числа (и число 0)Положительные числа в прямом, обратном и дополнительном кодахизображаются одинаково — цифровая часть содержит двоичную запись числа, взнаковом разряде содержится 0.Например, для k = 8:Число 110 = 120000Число 12710 = 111111120Знак числа «+»00101111111Знак числа «+»-2-Диапазон представимых чисел: 0 ..
2k − 1 − 13.2.2. Отрицательные целые числаОтрицательные числа в прямом, обратном и дополнительном кодах имеют разноеизображение.3.2.2.1. Прямой код отрицательных чиселВ знаковый разряд помещается цифра 1, а в разряды цифровой части числа —двоичный код его абсолютной величины.Пример (при k = 8):Прямой код числа −1100000Прямой код числа −1270111Знак числа «−»111111Знак числа «−»Диапазон представимых чисел: −(2k − 1 − 1) .. 03.2.2.2. Обратный код отрицательных чиселПолучается инвертированием всех цифр двоичного кода абсолютной величинычисла, включая разряд знака: нули заменяются единицами, а единицы — нулями.Пример (k = 8):Число −1Число −127Код модуля числа:Код модуля числа:00000001Обратный код числа:1111110111111100Обратный код числа:1010Знак числа «−»0000Знак числа «−»Диапазон представимых чисел: −(2k − 1 − 1) ..
03.2.2.3. Дополнительный код отрицательных чиселПолучается образованием обратного кода с последующим прибавлениемединицы к его младшему разряду. Например:Дополнительный код числа −111111111Знак числа «−»Дополнительный код числа −12710000001Знак числа «−»Диапазон представимых чисел: −2k − 1 .. −1-3-Заметим, что ноль имеет два представления в прямом и обратном коде, а вдополнительном коде представление нуля единственно.3.2.3.
Вычисление обратного и дополнительного кодовОдин и тот же битовый набор длины k можно интерпретировать по-разному:1) как представление некоторого числа без знака;2) как представление некоторого числа со знаком (в прямом, обратном илидополнительном коде).Компьютер не знает, что именно представляет тот или иной битовый набор —для него это просто слово в алфавите {0, 1}, а смысл этого слова известенпрограммисту. Числовым значением такого слова будем называть неотрицательноецелое, двоичная (k-разрядная) запись которого совпадает с данным словом.Пусть x — число со знаком.
Тогда числовое значение его обратного идополнительного кодов можно определить с помощью функций обр(x) и доп(x):⎧ x, если x ≥ 0обр( x) = ⎨ k⎩2 − 1 − x , если x < 0⎧ x, если x ≥ 0доп( x) = ⎨ k⎩2 − x , если x < 0Например, при k = 8:обр(+1) = доп(+1) = 1= 0000 00012;обр(−127) = 255 − 127 = 128 = 1000 00002;доп(–127) = 256 − 127 = 129 = 1000 00012;обр(−1) = 255 − 1 = 254 = 1111 11102;доп(–1) = 256 − 1 = 255 = 1111 11112;доп(−128) = 256 − 128 = 128 = 1 000 00002.
В обратном коде число −128 непредставимо.Ниже приведена таблица, демонстрирующая различные интерпретации битовыхнаборов длины 3.ЧтопредставляетБеззнаковоецелоеЗнаковоецелое впрямом кодеЗнаковоецелое вобратномкодеЗнаковое целоевдополнительномкоде0000+0+0+00011+1+1+10102+2+2+20113+3+3+31004−0−3−41015−1−2−31106−2−1−21117−3−0−1Битовыйнабор (k = 3)-4-3.2.4. Диапазоны значений целых чиселЦелые числа обычно занимают в памяти компьютера один, два или четыребайта. В суперкомпьютерах могут быть и более «длинные» целые.Форматчисла вбайтахДиапазонЗапись с порядкомОбычная записьСо знакомБез знакаСо знакомБез знака1−27 ..
27 − 10..28 − 1−128 .. 1270..2552−215 .. 215 − 10..216 − 1–32 768 .. 32 7670..65 5354−231 .. 231 − 10..232 − 1−2 147 483 648 ..2 147 483 6470..4 294 967 2953.3. Арифметические действия над целыми числамиОбратный и дополнительный коды применяются особенно широко, так какпозволяют упростить конструкцию арифметико-логического устройства (АЛУ)компьютера путем замены некоторых арифметических операций сложением.Обычно десятичные числа при вводе в машину автоматически преобразуются вдвоичный код (целые без знака), обратный или дополнительный код (целые со знаком)и в таком виде хранятся, перемещаются и участвуют в операциях.
При выводерезультатов из машины происходит обратное преобразование в десятичные числа.3.3.1. Сложение и вычитание3.3.1.1. Сложение и вычитание чисел без знакаСложение и вычитание беззнаковых чисел происходит по обычным дляпозиционных систем счисления алгоритмам.Примеры (для k = 3):0012 + 1002 = 1012;1012 − 0102 = 0112.Ситуации, когда уменьшаемое меньше вычитаемого или когда результат суммыне умещается в k разрядов, считаются ошибочными и должны отслеживатьсяустройством компьютера.
Характеристики
Тип файла PDF
PDF-формат наиболее широко используется для просмотра любого типа файлов на любом устройстве. В него можно сохранить документ, таблицы, презентацию, текст, чертежи, вычисления, графики и всё остальное, что можно показать на экране любого устройства. Именно его лучше всего использовать для печати.
Например, если Вам нужно распечатать чертёж из автокада, Вы сохраните чертёж на флешку, но будет ли автокад в пункте печати? А если будет, то нужная версия с нужными библиотеками? Именно для этого и нужен формат PDF - в нём точно будет показано верно вне зависимости от того, в какой программе создали PDF-файл и есть ли нужная программа для его просмотра.