- •Системы счисления Методические указания
- •Задача 1. Выполнить указанные в таблице задания Варианты
- •Пример выполнения
- •Задача 2. В какой системе счисления справедливо заданное равенство? Варианты
- •Пример выполнения
- •Задача 3. Найти основание X системы счисления, для которой выполняется равенство Варианты
- •Пример выполнения
- •Пример выполнения
- •Задача 5. Для заданного десятичного числа выполнить следующие преобразования систем счисления: 108101610; 816 Варианты
- •Пример выполнения
- •Представление информации Методические указания Ячейки памяти и машинные двоичные коды
- •Представление целых чисел без знака
- •Представление целых чисел со знаком
- •Представление вещественных чисел в типе Single
- •Задача 6. Два числа x1 и x2 хранятся в формате 1 байт со знаком. Заданы их шестнадцатеричные коды. Чему равны их фактические десятичные значения? Варианты
- •Пример выполнения
- •Задача 7. Проинтерпретировать 16 разрядов памяти компьютера в соответствии со следующими типами языка Паскаль: Byte, Shortint, Char, Word, Integer. Варианты
- •Пример выполнения
- •Задача 8. Переменная а имеет тип Single языка Паскаль. Задано представление значения а в шестнадцатеричной системе счисления. Чему равно десятичное значение числа a? Варианты
- •Пример выполнения
- •Основы алгебры логики Методические указания
- •Задача 9. Вычислить значение логического выражения на заданном наборе логических переменных. Варианты
- •Пример выполнения
- •Задача 10. Проверить справедливость равенства, используя законы алгебры логики. Варианты
- •Пример выполнения
- •Задача 11. Упростить логическое выражение, используя законы алгебры логики Варианты
- •Пример выполнения
- •Варианты заданий к контрольной работе
- •Литература
- •Русские буквы
- •Приложение б. Шаблон оформления титульного листа
Представление информации Методические указания Ячейки памяти и машинные двоичные коды
Числа в памяти ЭВМ (компьютера) могут храниться в разных форматах. Термин «формат хранения» синонимичен понятию «внутримашинное представление» и является важнейшей составной частью понятия типа данных. В языках программирования типы данных имею собственные названия. Например, в языках Паскаль и Delphi (с версии среды Delphi 7.0 в официальных документах фирмы Borland в качестве названия языка программирования вместо Object Pascal стал использовать термин «Delphi») имеются типы числовых данных с названиями: Byte, Shortint, Word, Integer, Longint, Real, Single, Double, Extended, Comp.
Каждому типу числовых данных соответствует
конкретная длина ячейки памяти ЭВМ,
обозначим эту длину буквой
.
Ячейкой памяти принято называть участок
основной памяти компьютера, выделяемый
для хранения данных. Физически каждый
элемент ячейки памяти – это устройство,
называемое триггером. Триггер имеет
два устойчивых состояния. Одно из этих
состояний логически связывается со
значением ноль, а другое – со значением
единица. Таким образом, с логической
точки зрения ячейка памяти – это
последовательность разрядов, в которых
размещаются двоичные цифры. Эти цифры
часто называют битами.
Содержимое ячейки памяти – последовательность бит – называется машинным двоичным кодом. Естественно, любой двоичный код может быть рассмотрен (интерпретирован) как двоичное представление некоторого целого числа. Значение этого числа может быть равным нулю, – если все биты кода равны нулю, или положительным, – поскольку в двоичном коде нет иных знаков кроме двоичных цифр. Указанную числовую интерпретацию двоичного кода назовем арифметическим значением этого кода и обозначим его буквой U.
Может возникнуть вопрос: а что – возможны какие-то ещё интерпретации двоичных кодов? Чуть подумав, понимаем: конечно же, возможны. Дело в том, что двоичные коды не только интерпретируются (воспринимаются, толкуются) но и формируются. Процесс интерпретации двоичного кода – это, по сути дела, процесс чтения информации, а процесс формирования кода – это процесс записи информации в память компьютера. Ну, а записывать надо не только целые числа без знака, но и числа со знаком, и дробные числа, да и не только числа. Естественно, весь этот зоопарк разнотипных данных приходится отображать в последовательности единиц и нулей – иного в памяти ЭВМ нет! Таким образом, осознаём: двоичный код может означать всё, что угодно, а не только целое число без знака. И теперь понятна вся условность введённого нами понятия арифметического значения двоичного кода – это простейшая, выбранная нами именно по причине крайней простоты, интерпретация кода, который на самом деле может быть сформирован при занесении в память компьютера чего-то совершенно иного.
А как же всё-таки машина узнаёт о том, как ей надлежит интерпретировать содержимое ячеек собственной памяти? Дело в том, что понятие типа данных включает не только сведение о длине ячейки памяти, выделяемой под данные конкретного типа, но и еще два сведения: 1) правило формирования двоичного кода (правило кодирования) значения, помещаемого в ячейку; 2) правило интерпретации содержимого ячейки памяти, т. е. правило распознавания хранимого значения. Да-да, это правила записи и чтения информации! Встряхнём головой, вздохнём, и постараемся постичь следующее: для каждой ячейки памяти компьютера, используемой для хранения данных (чисел и прочее), выделяется ещё одна дополнительная – теговая ячейка памяти, предназначенная для хранения сведения о типе данных, хранимых в основной ячейке.
Итак, память ЭВМ «нарезается» на ассоциированные пары ячеек – ячейки хранения данных и теговые ячейки с информацией (кодом) о типе хранимых данных. Именно по коду в теговой ячейке машина выбирает нужное правило формирования двоичного кода значения, помещаемого в память, и правило выяснения значения, извлекаемого из памяти.
Итак, запоминаем:
двоичный машинный код – это целое двоичное число без знака, записанное фиксированным количеством разрядов, возможно, с незначащими лидирующими нулями;
это число называется кодом потому, что в него отображается путём кодирования нечто иное, например, целое число со знаком или дробное число;
получается, что у кода имеется два значения: 1) числовое, поскольку код – это целое число (мы назвали это значение арифметическим), и 2) фактическое – исходное, из которого получается код путём каких-то вычислений.
