- •Информатика как наука. Основные понятия.
- •Понятие информации. Свойства, измерение, обработка.
- •История развития эвм и пк. Принципы фон Неймана.
- •Основные устройства пк, их назначения и характеристики: 1. Микропроцессор. 2. Внутренняя память. 3. Контроллеры и адаптеры. 4. Системная шина. 5. Монитор. 6. Клавиатура.
- •Микропроцессор
- •5. Типы по. Эволюция языков программирования.
- •Понятие алгоритма. Основные свойства. Формы записи. Машина Тьюринга.
- •Системы счисления. Двоичная и 16-ая системы. Правила перевода чисел из одной системы счисления в другую.
- •Двоичная арифметика. Форматы положительных и отрицательных чисел.
- •Типы данных c#. Внутренний формат, распределение памяти.
- •Приоритет операций в выражениях c#. Стандартные операторы консольного ввода-вывода.
- •Организация условных переходов: условный оператор и оператор выбора.
- •Операторы цикла. Понятие составного оператора.
- •Способы сортировки массивов: вставкой, обменом, выбором. Простые сортировки
- •Сортировка простыми вставками
- •Сортировка бинарными вставками
- •Сортировка простым выбором
- •Сортировка простыми обменами
- •Организация функций. Механизм передачи параметров в функцию. Формальные и фактические параметры.
- •Рекурсия функций.
- •Динамическая организация данных. Линейные списки.
- •Характеристики
- •Динамическая организация данных. Двоичные деревья.
- •Основные принципы ооп. Конструкторы и деструкторы.
Двоичная арифметика. Форматы положительных и отрицательных чисел.
Двоичная арифметика – краткое наименование системы арифметических операций (включающей сложение, вычитание, умножение, деление, иногда некоторые другие операции) над двоичными числами, т.е. целыми числами, представленными в двоичной позиционной системе; собирательное название схемных решений для выполнения арифметических операций над двоичными числами – сумматоров, умножителей, схем вычитания, деления и другие.
В последнее время почти вся техника, связанная с передачей и обработкой информации, стала цифровой. Цифровыми стали аудио и видеомагнитофоны, превратившись в DVD-плейеры и Айподы, телевизоры, фотоаппараты, а многие виды электронно-вычислительной техники и современные мобильные телефоны были цифровыми изначально. Это означает, что информация, циркулирующая в этих устройствах, представляется (или, как говорят, кодируется) в цифровом виде, т.е. как правило, в виде строк (или последовательностей), состоящих из нулей и единиц. Этим строкам можно сопоставить по некоторым правилам целые числа, для чего обычно используется двоичная позиционная система их записи.
Таким образом, с определенной точки зрения, все цифровые устройства генерируют потоки целых чисел, по некоторым правилам их преобразуют, обрабатывают, кодируют, декодируют и т.д., и передают другим цифровым устройствам. Область науки и техники, которая занимается изучением подобных процессов, называется цифровой обработкой сигналов (английская аббревиатура DSP – Digital Signal Processing).
Существенную роль в этом играют алгоритмические процедуры, выполняющие арифметические и логические операции с различными типами числовых данных. Проектированием подобных алгоритмов и устройств, их реализующих, занимается компьютерная арифметика. Ее математической основой является теория сложности так называемых булевых функций (более длинно именуемых функциями алгебры логики).
В большей своей части компьютерная арифметика является двоичной арифметикой. Этому есть две причины. Во-первых, алгоритмы арифметических операций двоичной арифметики (т.е. арифметики, использующей двоичную позиционную систему) очень просты и являются в определенном смысле простейшими среди подобных алгоритмов для всех позиционных числовых систем. Во-вторых, дискретные (не аналоговые) электронные схемы, как самые современные, так и использовавшиеся много лет назад, имеют в определенном смысле двоичную природу и легко описываются на языке алгебры логики. Алгебра логики применяется как для моделирования функционирования этих схем, так и для их проектирования (синтеза).
Формы с плавающей и фиксированной точкой
Существует 2 способа предcтавления чисел: с плавающей и фиксированной точкой.
|
Представление числа в форме с фиксированной точкой. |
Общий вид представления числа с фиксированной точкой:
Зн |
2-1 |
... |
2-n |
Зн |
2-1 |
... |
2-15 |
< 2 байта, 16 разрядов > |
Зн |
2-1 |
... |
2-31 |
< 4 байта, 32 разрядa > |
В общем случае фиксированная точка (естественная форма представления чисел) характеризуется значением m (m = соnst). В этом случае для всех чисел, с которыми оперирует машина, положение точки постоянно. Можно увидеть, что при m = 0 все числа, с которыми оперирует машина, меньше 1 и представлены в виде правильных дробей.
В формате с фиксированной точкой разрядная сетка имеет n + 1 разряд:
xmax0.111...1 - 2n
xmin0.000...1 * 2n
0 x2n
При использовании чисел с фиксированной точкой может возникнуть переполнение.
|
Представление чисел в форме с плавающей точкой. |
Такое представление числа соответствует нормальной форме записи:
¦ (x1p-1 + x2p-2 + ... + xnp-n)
Здесь p-n - мантисса, pm - порядок.
Пример:
133,21 = 102*1.3321, 102- порядок, 1.3321- мантисса. 1332.1 = 103*1.3321 0.13321 = 10-1*1.3321
При использовании формата с плавающей точкой пользуются понятием нормализованного представления чисел.
Нормализованным числом называется число, мантисса которого удовлетворяет следующим неравенствам:
Пример:
0,00121 = 10-2*0.121 0.0010 = 2-2*0.101 101.10 = 23 *0.10110
Зн.п |
2ln-2 |
... |
20 |
Зн.m |
2-1 |
2lm |
|
< Код порядка > |
|
< Код мантиссы > |
< Длина поля порядка > |
< Длина поля мантиссы > |
Kn - код порядка Km - код мантиссы ln - длина поля порядка lm - длина поля мантиссы
Знак '-' кодируется единицей, знак '+' - нулем.
Диапазон представления чисел (максимальное число) зависит от того, как велики поля порядка и мантиссы.
Пример:
25*0.110101
0 |
101 |
0 |
110101 |
Основной операцией в ЭВМ является операция сложения. При вычислении суммы в ЭВМ возможны 2 случая: либо слагаемые имеют разные знаки, либо одинаковые.
|
Алгоритмы получения суммы 2-х чисел с общими знаками: |
1-й алгоритм
Сложить два числа
Сумме присвоить знак одного из слагаемых
2-й алгоритм
Сравнить знаки слагаемых. Если они одинаковы, то выполнить сложение по 1-му алгоритму.
Сложить слагаемые по абсолютной величине, если знаки слагаемых разные.
Если необходимо, переставить числа местами, чтобы вычитать из большего меньшее.
Произвести вычитание.
Результату присвоить знак большего слагаемого.
S = A + (-B)
Формы представления чисел со знаками
Распространёнными формами представления чисел со знаками является их представление в прямом, обратном и дополнительном коде
Прямой код числа образуется кодированием знака числа нулём, если число положительно и единицей, если число отрицательно (для двоичной системы)
Для общего случая (q - 1) - если число отрицательно, и 0 - если число положительно. q - основание системы счисления.
Код знака записывается перед старшей цифрой числа и отделяется от неё точкой:
-1.01 = 1.101
Прямой, обратный и дополнительный коды положительных чисел совпадают между собой.
Обратный код отрицательного числа образуется из прямого кода, заменой его цифр на их дополнения до величины q-1. Код знака сохраняется без изменения.
Пример :
+12310 = 0.123пр. = 0.123об. -12310 = 9.123пр = 9.876об. +3А7С0016 = 0.3А7С00пр = 0.3А7С00об. -3А7С0016 = F.3А7С00пр = F.C583FFоб. -1012 = 1.101пр = 1.010об.
Замена цифр их дополнениями для двоичной системы совпадает с операцией инверсии, то есть нули заменяются единицами, единицы - нулями. Знак принимает значение, равное единице.
Дополнительный код отрицательного числа образуется из обратного увеличением на 1 его младшего разряда. При этом перенос из знакового разряда игнорируется.
Пример:
+23610 = 0.236пр.= 0.236об.= 0.236доп. -23610 = 9.236пр.= 9.763об.= 9.764доп. -1012 = 1.101пр.= 1.010об.= 1.011доп. -3А7С16 = F.3А7Спр.= F.C583об.= F.C584доп.
Правила перевода из прямого кода в обратный и из обратного в прямой, а также из прямого в дополнительный и из дополнительного в прямой совпадают между собой.
Форматы чисел в ЭВМ
Рассмотрим представление формата в ЭВМ на примерах форматов, используемых в IBM 360/370 и ПЭВМ.
Как упоминалось ранее, в ЭВМ информация, представляемая с использованием множества двоичных разрядов, называется его разрядной сеткой. Количество этих разрядов определяет длину разрядной сетки. Для чисел заданного диапазона используется разрядная сетка с заранее определённой длиной и назначением разряда, что называется заданием числа в определённом формате. Задание диапазона предполагает выбор системы счисления, кода и разрядности чисел, что находит отражение в написании формата.
Кроме бита и байта, для указания длины формата используется слово, его производные - полуслово, двойное слово. Двойное слово и полуслово по-разному определяется для разных систем ЭВМ. Кроме того, используется понятие тетрада - 4 двоичных разряда, которыми может кодироваться, например, одна двоичная цифра.
Назначение разряда в формате структурирует разрядную сетку, то есть разбивает её на поля, объединяющие разряды сходного назначения. Например, разряды мантиссы или порядка. Форматы чисел в IBM 360/370 имеют длину полуслова, слова и двоичного слова, содержащие соответственно 2,4 и 8 байт.
Двоичные разряды в форматах формируются слева направо (начиная с нулевого разряда).
0 |
1 |
15 |
H |
Зн |
Разряды числа |
0 |
1 |
31 |
F |
Зн |
Разряды числа |
0 |
1 |
7 |
31 |
E |
Зн |
Характеристика |
Мантисса числа |
0 |
1 |
7 |
63 |
D |
Зн |
Характеристика |
Мантисса числа |
< байт > |
< байт > |
< байт > |
Z |
Зона |
Ст.цифра |
Зона |
Цифра |
... |
Зона |
Цифра |
Знак |
Мл.цифра |
< байт > |
< байт > |
P |
Ст.цифра |
Цифра |
... |
Мл.цифра |
Знак |
Форматы H и F используются для представления двоичных чисел с фиксированной точкой, а E и D - с плавающей. Для представления десятичных чисел требуются форматы Z и P.
В формате H и F записывают целые двоичные числа, представленные в дополнительном коде и имеющие длину соответственно полуслова (короткий формат H) и слова (длинный формат F). Нулевой дволичный разряд является знаком. Формат H позволяет представить числа в диапазоне от -215 до 215-1, формат F - от -231 до 231-1. Форматы E и D служат для представления двоичных чисел с плавающей точкой и имеют длину соответственно слова и двойного слова. В нулевом разряде указывается код знака мантиссы (Зн). В семи следующих разрядах первого байта записывается характеристика (Х), представляющая собой порядок (П), в виде положительного числа . В последующих байтах записывается мантисса.
Форматы E и D описывают двоичные числа в двоично-кодированной шестнадцатеричной системе счисления. Порядок чисел изменяется от -64 до +63.
Характеристика (Х) изменяется от 0 до 127,
Х = Р + 64,
то есть смещает порядок в область положительных чисел.
Формат D за счёт большей длины, используемой для увеличения разрядности мантиссы, обеспечивает представление чисел с большей точностью.
Диапазон абсолютных значений чисел в форматах E и D составляет величины от 16-64 до 1663 , что эквивалентно пределам от 10-77 до 1076.
Для представления чисел в формате E и D необходимо перевести число в 16-ричную систему счисления, представить его в форме с плавающей точкой, определить характеристику и занести код знак мантиссы, характеристику и мантиссу в соответствующие поля формата.
Пример:
30010 = 12С16 = 0.12С16*163 = 4312С000E = 43.12С00000000000D -8010 = -5016 = -0.5016*162 = С2500000E = С250000000000000D
Для положительных чисел при переводе в формат Е впереди пишется 4, для отрицательных - С.
Зн |
26 |
25 |
24 |
23 |
22 |
21 |
20 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
1 |
Для положительного числа:
0 |
100 |
0001 |
Для отрицательного числа:
1 |
100 |
0001 |
210 = 216 = 0.216*161 = 41200000Е = 4120000000000000D
0 |
100 |
0001 |
0010 |
0000 |
0000 |
... |
0000 |
Форматы Z и P (зонный и упакованный) используют двоично-десятичную систему исчисления с весами 8421. Каждая десятичная цифра кодируется тетрадой.
Пример:
1510 = 0001 01012-10
Знак числа: если число положительное, то оно кодируется символами A, C, E, F , если же число отрицательное- то символами B и D.
Формат Z (зонный формат)используется при вводе и выводе. Для каждой цифры отводится 1 байт, причём правая тетрада кодирует цифру, а левая зона принимает значение F, если кодируется цифра, и этим отличает цифру от кодов других символов в других информациях. Крайний правый байт, кодирующий младшую цифру, на месте зоны имеет код знака.
Формат Р называется упакованным и используется при выполнении операций над цифрами. Получается из зонного путём удаления зон и перенесения кода знака на место справа от тетрады, кодирующей младшую цифру. Формат имеет целое количество байт и пре необходимости дополняется слева от младшей цифры нулевой тетрадой. Форматы Z и P могут иметь длину от 1 до 16 байт.
Пример:
+3010 = 1Е16 = 001ЕH = 0000001ЕF -3010 = 1Е16 = FFE2H = FFFFFFE2F +3010 = 1Е16 = 0.1Е16*162 = 421E0000E = 421E000000000000D -3010 = 1Е16 = -0.1Е16*162 = C21E0000E = C21E000000000000D +3010 = F3AOZ = 030AP -3010 = F3BOZ = 030BP +32510 = F3F2A5Z = 325AP