Виды данных. Операции с числами и структура системы команд

Страницы работы

Содержание работы

Виды данных

Перечисление с кратким пояснением:

Числа - этот вид данных был первым, с которым работали средства ВТ. Отсюда исторически оставшаяся BCD-форма представления чисел

Тексты - Как только было осознано, что СВТ может не только "вычислять", а является универсальным обработчиком данных,.стали использовать ВТ для обработки текстов.. Основной объем данных у человечества накоплен был в символьной (текстовой) форме. До СВТ уже были разработаны способы кодирования текстов для передачи (телеграф). Основные операции, которые надо было выполнять с текстами – это:
- поиск в тексте фрагментов с заданным содержимым (вхождения подстроки в строку),
- сортировка (последовательности строк), по заданному критерию (например по алфавиту)
- конкатенация (соединение) строк

Изображения - человек получает через зрительный канал около 90% информации. До недавнего времени основной проблемой для обработки изображений был большой потребный объем ресурсов (1000 х 1000 пикселов - типовой размер)

Битовые поля - вид данных, когда отдельные элементы данных имеют разный размер (в битах), нередко меньший, чем МАЕ. Характерный пример - отдельные поля в машинной команде (этот вид данных является выходным для трансляторов). Другой пример - входные данные, получаемые управляющими ЭВМ (микроконтроллерами) с объекта управления.

Прочие виды - .... (например, данные, описывающие звуки) и многое другое, с чем пока еще работают не очень много.

Числа: их характеристики - диапазон представимых значений и точность представления

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

а) ограничен диапазон представимых значений (их при n-битовом двоичном коде не более, чем 2n штук, если для представления чесел используется M-ичный n-разрядный код, количество представимых значений не превышает[1] Mn)

б) ограничена точность (разрешающая способность) представления величины - нельзя отобразить изменение, меньшее некоторого кванта (единицы младшего разряда при целочисленном представлении)

в) представление чисел оказывается «циклическим» по отношению к арифметическим действиям (см. далее)

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

Системы счисления,

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

Непозиционные системы: например в остаточных классах

С кодированным изображением (альтернатива непосредственному): например "часы-минуты-секунды.

С нарушением естественного порядка следования: например двоично-десятичная.

Способы изображения чисел, используемые в ЦВТ

И преобразование из одного вида в другой

Десятичное изображение

N = 12345= 1*104 + 2*103 + … + 5*100

Двоичное изображение

N = 10011b = (1*10100 + 0*1011 + 0*1010 + 1*101 + 1*100)bin = (1*24 + 0*23 +0*22 + 1*21 + 1*20)dec

Шестнадцатиричное

N = B4F1h = B*103 + 4*102 + F*101 + 1*100 = 11*163 + 4*162 + 15*161 + 1*160

Восьмеричное

N = 075331 = 7*84 + 5*83 + 3*82 + 3*81 + 1*80

Преобразование из одной системы в другую

Два способа:

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

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

Операции с числами и структура системы команд

Представление целых чисел

Целые числа без знака

Что это может быть содержательно: все, что можно считать "на штуки". Подсчитываемые "штуки" могут относиться как ко вешним объектам (данные вводятся извне), так и к внутренним, например количество циклов в программе.

В частности это могут быть адреса элементов данных в памяти.

Замечание: в некоторых процессорах адрес трактуется разработчиками как число со знаком (например Transputer).


Диапазон представимых значений в N-битовой сетке

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

(Это надо изобразить круговой диаграммой !!!)

HEX

BIN

DEC

К след. зн.

00...00

000...000

0

+1

00...01

000...001

1

+1

00...02

000...010

2

+1

.....

.....

.....

...

...FFD

111...101

2N-3

+1

...FFE

111...110

2N-2

+1

...FFF

111...111

2N-1

+1

Здесь проходит

00...00

000...000

+1

граница цикла

00...01

000...001

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

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

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

При обнаружении переполнения (а также и других «экстраординарных», нештатных ситуаций) возможны различные способы реакции:
а) проигнорировать
б) остановить выполнение программы
в) предпринять заранее предусмотренные действия

Замечание о разрядности:  во многих процессорах возможно выполнение операций с операндами разной разрядности (обычно от МАЕ до Слова). В процессорах i*386 и выше разрядность целых может быть 1, 2, 4 или 8 байтов (char, int, double, quad).

Переполнение и действия с расширенной разрядностью

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

+

 
          an-1 an-2……a1 a0           первый операнд
       _bn-1 bn-2……b1 b0_         второй операнд
Cß   sn-1 sn-2……s1 s0            сумма (если возникает перенос – он устанавливает C-бит)

-

 
          an-1 an-2……a1 a0           первый операнд
       _bn-1 bn-2……b1 b0_         второй операнд
Cß   sn-1 sn-2……s1 s0            разность (если возникает заем – он устанавливает C-бит)

Похожие материалы

Информация о работе