|
|||||||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Представление информации в ПЭВМ
Языки высокого уровня (Паскаль, Бейсик, Си и т.п.) не ориентированы на конкретный тип ЭВМ. Это означает, что программа, написанная, например, на языке Паскаль, должна решаться без изменений на ЭВМ любого типа, имеющей транслятор с данного языка. В связи с этим программиста практически не интересуют конкретные технические сведения о конструкции и особенностях функционирования отдельных устройств ЭВМ. Тем не менее, для создания эффективной программы необходимо обладать некоторым минимальным объемом знаний о технических параметрах ЭВМ, на которой будет реализована эта программа, в частности о способах представления числовой и нечисловой информации. В ПЭВМ, как и во многих машинах другого типа, минимальной единицей обрабатываемой информации является байт (byte). Байт состоит из 8 двоичных разрядов, или бит (bit). Биты нумеруются 0,1, 2, 3, 4, 5, 6, 7. Биты 0..3 и 4..7 образуют два полубайта - левый и правый. При записи содержимого байта каждый полубайт обозначают одной шестнадцатеричной цифрой. Возможные значения байта: 0000 0000 = 00 0000 0001 = 01 0000 0010 = 02 ................ 1111 1111 = FF Следовательно, байт может принимать 256 различных значений. Соответствие между кодовыми комбинациями байта и символами, реализуемыми на ПЭВМ, отражаются в кодовой таблице ASCII. В этой таблице представлены латинские и русские буквы, цифры, знаки операций и др. Например, цифре 6 соответствует кодовая комбинация 00110110 (36), букве K - код 01001011 (4B) и т.д. Каждый байт в памяти ЭВМ имеет свой номер (адрес). Адреса изменяются последовательно от 0 до некоторого максимального адреса, определяемого объемом памяти ЭВМ. Объем памяти измеряют в килобайтах, мегабайтах, гигабайтах. 1 Kбайт = 210 байт; 1 Мбайт = 210 Kбайт = 220 байт. 1 Гбайт = 210 Мбайт = 230 байт. Байты могут обрабатываться каждый отдельно или полями. Поле - это группа последовательных байтов. Длина поля равна количеству содержащихся в нем байтов. Адресом поля является адрес его крайнего левого байта. Некоторые поля имеют отдельные наименования: слово (поле длиной 2 байта), двойное слово (поле длиной 4 байта). Основными типами данных в ПЭВМ являются целые и вещественные числа, логические и символьные данные. 1. Целые числа (числа с фиксированной запятой). ПЭВМ имеет несколько типов целых чисел, различающихся между собой количеством содержащихся в них разрядов. Здесь будет рассмотрен тип int от английского слова integer. Для чисел типа int отводится поле длиной 2 байта. Биты этого поля нумеруются в последовательности 0, 1,..., 15. Нулевой бит содержит знак числа ("0" - это "+", "1" - это "-"). Например, число 310410 = C2016 в формате int имеет вид 0C20 = 0000 1100 0010 0000 Здесь 16 c/c используется для компактного изображения двоичного числа. Отрицательные числа с фиксированной запятой представлены в так называемом дополнительном коде. Дополнительный код отрицательного числа - это его дополнение до такого числа, которое в этой же системе счисления представлено единицей и столькими нулями, сколько цифр имеет исходное число. Примеры. 10 c/c 16 c/c 2 c/c 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 - 2 8 9 3 A 5 4 C 1 0 1 0 ------------ ---------- ------------ 8 1 0 7 5 A B 4 0 1 1 0 Существует более простое правило формирования дополнительного кода отрицательного числа: чтобы получить дополнительный код, необходимо каждую цифру исходного отрицательного числа заменить ее дополнением до максимальной цифры в данной системе счисления, а затем добавить единицу к младшему разряду образовавшегося числа. Для 10 c/c максимальная цифра - это 9, для 16 c/c - F, для 2 c/c - 1. Отметим, что для 2 c/c первый этап указанного преобразования сводится к инвертированию числа, т.е. замене нулей на единицы, а единиц - на нули. Для числа -310410 в формате integer имеем F3E0. Для числа 5810 = 3A16 получим 5 8: 0 0 3 A - 5 8: F F C 6 Дополнительный код позволяет заменить операцию вычитания операцией сложения с дополнительным кодом отрицательного числа. Пусть нам требуется выполнить в 10 c/c операцию 6 5 8 6 1 - 4 8 2 7 3 ------------- 1 7 5 8 8 Вместо вычитания числа 48273 выполним сложение с его дополнительным кодом: 6 5 8 6 1 + 5 1 7 2 7 ¦ 1¦ 1 7 5 8 8 Обведенная рамкой единица переноса выходит за пределы разрядной сетки и теряется. Следовательно, в обоих случаях мы получили одинаковые результаты. Использование дополнительного кода позволяет отказаться от установки в процессоре ЭВМ блока вычитания, что упрощает конструкцию процессора. Максимальное значение числа формата int: Xmax = 0111 1111 1111 1111 = 1000 0000 0000 0000 - 1 = 215 - 1 = 32767 Минимальное значение определяется кодом 1000 0000 0000 0000, которому соответствует число -32768. Рассмотрим формирование отрицательного минимума для формата int. 800016 = 1000 0000 0000 00002 1111 1111 1111 1111 - доп.код числа -1 + 1000 0000 0000 0001 - доп.код числа -111 1111 1111 1111 = -(215 - 12) ---------------------- 1 1000 0000 0000 0000 Единица переноса из старших складываемых разрядов отбрасывается. Результат 800016 = -(215 - 1) - 1 = - 215 = - 32768.
2. Вещественные числа (числа с плавающей запятой). На ПЭВМ имеется несколько типов вещественных чисел, различающихся количеством разрядов, отведенных для мантиссы и порядка числа. Мы будем рассматривать тип float. Тип float - это двоичное число, занимающее 4 байта памяти. Нумерация разрядов 0, 1, 2,..., 31. Три байта занимает мантисса числа, Один байт - порядок. Нулевой бит отведен для знака числа. Отрицательные числа изображаются в прямом коде.
3. Логические данные. Логические переменные и логические операции относятся к области математики, которая называется алгеброй логики. В алгебре логики рассматриваются высказывания, в отношении которых имеет смысл говорить об их истинности или ложности. Например, "снег белый", "сегодня - пятница", "x > 0", "a + b < z" и т.д. Истинность высказывания может принимать одно из двух значений: 0 (высказывание ложное) или 1 (высказывание истинное). Алгебра логики широко применяется при проектировании и анализе работы устройств ЭВМ, поскольку элементы, входящие в состав этих устройств, являются бинарными (двоичными) и могут находиться лишь в одном из двух возможных состояний, которые обозначаются соответственно 0 и 1. В программировании методы алгебры логики используются при вычислении логических выражений. Алгебра логики определяет 16 логических операций. Наиболее важными из них являются три: отрицание, логическое умножение и логическое сложение. Отрицание (операция НЕ). Таблица операции:
Читается: "Не нуль есть единица".
б) Логическое умножение (конъюнкция, операция И). Таблица операции:
Читается: "Нуль и нуль есть нуль".
в) Логическое сложение (дизъюнкция, операция ИЛИ). Таблица операции:
Читается: "Нуль или нуль есть нуль".
Логические операции являются битовыми. Если их применяют для полей битов, то эти операции выполняются отдельно для каждой пары бит. Пример. Пусть мы имеем два поля X и Y длиной 4 байта: X = F570 1A8B; Y = 37E4 90CD Здесь шестнадцатеричная запись используется только с целью компактности представления содержимого поля памяти. Тогда --- X = 0 A 8 F E 5 7 4 X /\ Y = 3 5 6 0 1 0 8 9 X \/ Y = F 7 F 4 9 A C F
4. Символьные данные Символьные данные имеют тип char (от английского слова character) имеют длину 1 байт и представляют собой символы (буквы, цифры, специальные знаки) из кодовой таблицы ASCII. Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.007 сек.) |