Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Информационные преобразования числовых форматов....doc
Скачиваний:
3
Добавлен:
13.11.2018
Размер:
333.31 Кб
Скачать

Московский государственный технический университет

имени Н.Э. Баумана

А.Ф. Деон, С.С. Комалов, Ю.И. Терентьев

Информационные преобразования числовых форматов

Рекомендовано редсоветом МГТУ им. Н.Э. Баумана

в качестве учебного пособия

Москва

Издательство МГТУ им. Н.Э. Баумана

2008

УДК 681.147.2(075.8)

ББК 32.973

Д11

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

Для студентов 1-го курса МГТУ им. Н.Э. Баумана.

УДК 681.147.2(075.8)

ББК 32.973

Учебное издание

Алексей Федорович Деон

Сергей Сергеевич Комалов

Юрий Иванович Терентьев

ВВЕДЕНИЕ

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

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

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

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

Позиционные системы счисления

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

Левая горизонтальная позиционная система становится системой счисления или числовой, если число записывается с помощью символов, занимающих определенные позиции. В арифметической позиционной системе счисления из аксиом арифметики следует, что числа образуют упорядоченное множество: каждое следующее число больше предыдущего. Следовательно, арифметические позиционные системы счисления должны обеспечивать такое графическое начертание чисел, чтобы количество позиций, занимаемых символами в изображении следующего числа, было не меньше количества символов в предыдущем числе. Римская система изображения чисел не является арифметической позиционной системой счисления, поскольку первые пять чисел не удовлетворяют этому требованию: I, II, III, IV, V. Число V занимает одну позицию, хотя само число больше, чем числа II , III или IV. Этого противоречия достаточно, чтобы считать римскую систему не арифметически позиционной. Арабская арифметическая система счисления позиционна, и в ней невозможно отыскать подобного противоречия. Количество символов изображения любого целого числа не противоречит аксиомам арифметики: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 и т.д. Числа образуют арифметику, если 1) существует начальное число (обычно 0), 2) существует порождающее число, которое можно сложить с любым числом (обычно 1 и операция сложения), 3) любое следующее число получается из исходного числа после добавления порождающего числа. Числа арифметики строго упорядочены, и всегда можно указать способ определения следующего и предыдущего числа. Начальное число задается аксиомой. Говоря о системе счисления, предполагают по умолчанию, что в ней выполняются свойства арифметической левой горизонтальной позиционной системы счисления.

Количество s различных знаков или цифр, используемых в системе счисления для обозначения чисел, называют основанием системы { 0, 1, 2, … , s-1 }. В двоичной системе , а цифры 0 и 1. В восьмеричной системе , а цифры 0, 1, 2, 3, 4, 5, 6, 7. В арабской десятичной системе основание с цифрами 0, 1, 2, … , 9. В шестнадцатеричной системе счисления с цифрами 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F. В общем случае любое число X в системе счисления можно представить как полином суммы цифр , находящихся в соответствующей позиции числа :

(1)

Например, число 497.108 в десятичной системе счисления можно представить как полином:

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

(2)

Обозначение (2) применяется для ввода чисел с внешних устройств в компьютер. Обозначение (1) используется для программ преобразования чисел из позиционной формы (2) во внутренний формат компьютера.