Практическое занятие по представлению данных в компьютере

Рубрика : Лабораторные работы

Практическое занятие по представлению данных в компьютере1. Напишите на языке Паскаль программу вывода в файл чисел типа byte, shortint, integer, longint. Попробуйте вывести различные числа в файлы данных. Просмотрите файлы данных в Far в режиме двоичного просмотра (HEX). Проанализируйте результаты.

Ответьте на вопросы:

—           сколько байт данных необходимо для представления чисел в этих форматах?

—           как перевести число из его представления его в файле к привычному виду?

—           как представляются в файле различные значения переменных?

КОМПАНИЯ «PHP ХОСТИНГ УКРАИНА» УЖЕ ПЯТЫЙ ГОД ПРЕДОСТАВЛЯЕТ УСЛУГИ ХОСТИНГА ДЛЯ САЙТОВ И РЕГИСТРАЦИИ ДОМЕННЫХ ИМЕН НА УКРАИНЕ.

2. Напишите программу ввода данных из файла в память компьютера. Проверьте, как читаются данные из файла.



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

3. Выведите в файл числа, определенные как single и double. Просмотрите их в Far. Переведите числа из представленных в компьютере в обычный вид. Проанализируйте результаты.

4. Создайте отчет в виде таблицы в редакторе Word.

Ну и есесенно решение всего этого:

1) Для представления чисел в форме byte необходимо 1 байт данных, Shortint (1 байт), integer (2байта), longint (4 байтов).

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


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

Например программа вывода в файл чисел типа integer (2012, 2112, -199, -777, 170, -30000, -117, -333). В Far в режиме двоичного просмотра(HEX) будет выведено:

DC07 4008 39FF F7FC AA00 D08A 8BFF B3FE

Для типа longint (-269856985, 1333333333, 89376222)

274FEAEF55 0D794FDE C5 53 05

Для того чтобы  перевести из их представления в файле к привычному виду нужно расположить байты по старшинству начиная с самого старшего и т. д. и преобразовать полученные 16-ные числа в 10-ную


07DC 0840 FF39 FCF7 00AA 8AD0 FF8B FEB3

11111011100=2012; 100001000000=2112; 1111111100111001=-199; 1111110011110111=-777; 10101010=170; 1000101011010000=-30000; 1111111110001011=-117; 1111111010110011=-333;

2) Числа из файла могут быть прочитаны неправильно, когда в программе вводя данные из файла в память компьютера указан не тот тип представления данных, в котором записаны числа в файле (например, указан тип shortint, а данные записаны типа integer и др.) Shortint (1 байт), integer (2байта)) , т.е. такая запись в файле как: DC07 4008 39FF (в кот. записаны 2012, 2112, -199) будет прочитана как последовательность байтов:

220, 7, 64, 8, 57, 255.

3) Single (4 байта) диапазон по модулю 1,5*10-45…3,4*1038

Double (8 байт) диапазон по модулю 5*10-324…1,7*10308

Возьмём число -207, 1875.

Для типа single в файл будет выведено 00304FC3


Переведём это представление числа к обычному виду

C34F300016 = 110000110100111100110000000000002

Первый бит 1  число отрицательное, далее идут 8 бит порядка 100001102=13410.

Т.к. это смещённый порядок, то найден истинный 10000110-01111111=1112=710

(т.е. вычисляем из смещённого порядка величину смещения 12710=011111112)

Далее нужно запятую в мантиссе сместить вправо на 7 позиций.

Т.к. первый бит мантиссы неявный, то реальная мантисса M=1,10011110011

Совмещаем знак, мантиссу и порядок: -11001111,00112=-207,187510.

Для типа Double в файл выведено 0000000000E669C0

Проведём аналогичные операции:

C069E60000000000016=1100000001101001111001 (0.…0)2

Смещённый порядок 100000001102=103010 истинный порядок равен

10000000110-01111111111=1112=710

M=1,10011110011  -11001111,00112=-207,187510


Хотите получать материалы на e-mail?