Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
157004.rtf
Скачиваний:
3
Добавлен:
01.04.2025
Размер:
439.66 Кб
Скачать

Типы данных

Традиционно выделяли два типа данных – двоичные (binary) и текстовые. Теперь существуют также и графические, и звуковые, и видеоданные.

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

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

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

Двоичное кодирование данных

Для автоматизации работы с данными, которые относятся к различным типам, необходимо унифицировать их форму представления. Системный код вычислительной техники – двоичное кодирование, основанное на представлении данных в виде последовательностей двух знаков – 1 и 0. Эти знаки называются двоичными цифрами (binary digits или bits). Все данные (в стандартных вычислительных системах) на самом низком уровне представлены именно в двоичном коде.

Одним битом кодируются два значения – 0 и 1.

Двумя битами – четыре значения – 00, 01, 10, 11.

Тремя битами – восемь значений – 000, 001, 010, 011, 100, 101, 110, 111.

Увеличение на единицу количества разрядов двоичной системы кодирования приводит к увеличению в 2 раза количества значений, которое может быть ими закодировано. Общее количество различных кодируемых значений равно 2m, где m – количество битов.

На практике в качестве минимальной единицы представления данных обычно используется байт (8 битов) или группа байтов.

Кодирование целых чисел

Алгоритм перевода неотрицательных целых десятичных чисел в двоичные:

  1. Разделить число на 2. Зафиксировать остаток (0 или 1) и частное.

  2. Если частное не равно нулю, то разделить его на 2 ещё раз. Делать так до тех пор, пока частное не станет равно 0.

  3. Записать все полученные остатки, начиная с первого, справа налево.

Обратный перевод (из двоичной системы счисления в десятичную) можно произвести так:

  1. Пронумеровать разряды исходного двоичного числа справа налево, начиная с 0.

  2. Сложить произведения цифр исходного числа на 2n, где n – номер соответствующего разряда, присвоенный ему на предыдущем шаге.

Для кодирования целых чисел от 0 до 255 хватит 8 битов (1 байта), от 0 до 65 535 – 16 битов, от 0 до 16 777 216 – 24 битов.

А как насчёт отрицательных целых чисел? На этот случай у процессора есть специальная арифметика, называемая двоичной дополнительной арифметикой. В ней байт выражает числа от – 128 до + 127, включая 0, т. е. тоже 256 различных чисел. Признаком отрицательного числа является включённый старший бит. Два байта выражают числа от – 32 768 до + 32 767, а за знак в этом случае отвечает старший бит старшего байта.

Байт

Значение в обычной двоичной арифметике

Значение в двоичной дополнительной арифметике

0000 0000

0

0

0000 0001

1

1

0000 0010

2

2

<…>

<…>

<…>

0111 1111

127

127

1000 0000

128

– 128

1000 0001

129

– 127

<…>

<…>

<…>

1111 1110

254

– 2

1111 1111

255

– 1

Заметим, что кроме только что описанной обычной системы кодирования целых чисел существует также т. н. код Грея, в котором записываются сервокоды на жёсткие диски. В этой системе кодирования при переходе от одного числа к соседнему изменяется всего один двоичный разряд. При этом информация считывается и обрабатывается намного быстрее, чем при обычном двоичном кодировании (правда, возможности обработки весьма ограничены: например, числа нельзя складывать, но для сервокодов это и не нужно).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]