Разделы презентаций


Программирование на языке высокого уровня

Содержание

Системы счисления Лекции 1, 2

Слайды и текст этой презентации

Слайд 1Программирование на языке высокого уровня
Факультет информационных технологий

Новосибирский государственный университет

Т.Г.Чурина

Программирование на языке высокого уровняФакультет информационных технологий Новосибирский государственный университетТ.Г.Чурина

Слайд 2Системы счисления
Лекции 1, 2


Системы счисления Лекции 1, 2

Слайд 3Значение и обозначение числа
Число
Значение (содержание)
Обозначение (форма)
Значение конкретного числа – это

числовая величина, «чистая», отвлеченная от каких-либо измеряемых объектов и единиц

измерения, количественная мера, выраженная в стандартных единицах.

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

9, IX, девять, nine, 1001(2)

Значение числа инвариантно (не зависит от обозначения).

Значение и обозначение числаЧислоЗначение (содержание)Обозначение (форма)Значение конкретного числа – это числовая величина, «чистая», отвлеченная от каких-либо измеряемых

Слайд 4Система счисления (с.с.) -
это система правил, позволяющих конструировать названия

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

они основаны на простом суммировании «весов» – цифр - «разновесов», занятых в записи числа.
Например, римская с.с., где все цифры могут браться плюсом или минусом, в зависимости от позиции этой цифры относительно более «тяжелых».
IX, XI
Позиционные системы счисления : число цифр конечно, вклад каждой цифры зависит от «веса» ее позиции (разряда) в записи числа.
Система счисления (с.с.) - это система правил, позволяющих конструировать названия чисел (знаковые обозначения) некоторым регулярным способом.Непозиционные системы

Слайд 5Представление целых чисел в позиционных системах счисления с произвольным основанием



Общие свойства b-ичных позиционных систем счисления (b-с.с.) определяются параметром

b - основанием с.с., которое определяет количество цифр, используемых для записи числа:
от 0 до b – 1, если b  10.
Если b = 16, то используются буквы:
10 – A
11 – B
12 – C
13 – D
14 – E
15 – F

Представление целых чисел в позиционных системах счисления с произвольным основанием  Общие свойства b-ичных позиционных систем счисления

Слайд 6Запись целого числа
0  ai < b,
i – индекс

позиции (разряда), в которой расположена цифра ai .

Запись числа

называется k-значной, если индекс
разряда первой значащей цифры числа равен k – 1.

Примеры
10011001(2), 248933, 7DAB(16),
123454(5) - неправильная запись
Запись целого числа0  ai < b, i – индекс позиции (разряда), в которой расположена цифра ai

Слайд 7Соотношение записи целого числа со значением
S – запись

числа.
N(S) – его значение.
S =
bi – явно указывают веса разрядов,

определяющих вклад каждой цифры в значение числа,

bi называется единицей i-го разряда b-ичного числа.

ai – количество полных единиц i-го разряда, которое останется после вычета всевозможного числа единиц старших разрядов.
Соотношение записи целого числа со значениемS   – запись числа.N(S) – его значение.S =bi – явно

Слайд 8Соотношение записи целого числа со значением
Значение Ni равно количеству полных

единиц i-го разряда в числе.

Соотношение записи целого числа со значениемЗначение Ni равно количеству полных единиц i-го разряда в числе.

Слайд 9Примеры
N(10011(2))= 124+023+022+121+120 =19
N(10011(2))=(((12+0)2+0)2+1)2+1=19

N(30A(16)) = 3162+0161+10160 = 778
N(30A(16)) =(316+0)16+10 = 778


ПримерыN(10011(2))= 124+023+022+121+120 =19N(10011(2))=(((12+0)2+0)2+1)2+1=19N(30A(16)) = 3162+0161+10160 = 778N(30A(16)) =(316+0)16+10 = 778

Слайд 10Теорема 1
Любое число однозначно представимо в виде цифр заданной b-с.

с.

Доказательство (от противного).

Теорема 1Любое число однозначно представимо в виде цифр заданной b-с. с.Доказательство (от противного).

Слайд 11Алгоритм А1: (перевод b-ичного числа в 10-с.с.)

Вход: b > 0, k > 0 (число цифр), набор

ak-1, ak-2, … , a1, a0.
; (S – накапливает степень,
N – значение)
цикл по i := 1 до k – 1




конец цикла;
Выход: N
(2k - 2) операций *
(k-1) операций +
Алгоритм А1:  (перевод b-ичного числа в 10-с.с.)   Вход: b > 0, k > 0

Слайд 12 Схема Горнера Алгоритм А2: (перевод b-ичного числа в 10-с.с)

Вход: b > 0, k > 0 (число цифр), набор



цикл по i от k-2 вниз до 0
N := N  b + ai ;
конец цикла;
Выход: N

k-1 операция *
k-1 операция +

Схема Горнера  Алгоритм А2:  (перевод b-ичного числа в 10-с.с)

Слайд 13Алгоритм A3: (перевод числа из 10-с. с. в b-с.с)
Вход:

N ≥ 0, b > 0;
i := 0;

цикл
ai := N mod b; (mod – остаток от деления нацело)
N := N div b; (div – целое деление)
i := i + 1;
пока N ≠ 0;
k := i;
Выход: набор ai , k ( число значащих цифр)
минимальное число операций деления = k
Алгоритм A3: (перевод числа из 10-с. с. в b-с.с) Вход: N ≥ 0, b > 0;

Слайд 14Пример: перевод из 10-с.с. в 2-с.с.
325

Целая часть | Остаток

от деления на 2
325(10) = 101000101(2)

Пример: перевод из 10-с.с. в 2-с.с.325Целая часть  | Остаток от деления на 2325(10) = 101000101(2)

Слайд 15Перевод числа из b1-с.с. в b2-с.с.
b10-с.с.

Перевод числа из b1-с.с. в b2-с.с.b10-с.с.

Слайд 16Представление действительных чисел

Если в дробной части числа конечное число

знаков k, то нижний
индекс суммы равен —к .




0.375=(3+(7+5/10)/10)/10=(3+(7+(5+0)/10)/10)/10

S

=
Представление действительных чисел Если в дробной части числа конечное число знаков k, то нижний индекс суммы равен

Слайд 17Связь дробной части числа со значением
где i = k, …

, 1;

Связь дробной части числа со значениемгде i = k, … , 1;

Слайд 18Примеры
N(«1.101(2)») = 120 +12-1 +02-2 +12-3
= 1

+ 0.5 + 0.125
= 1.625

Nf(«1.101(2)») =(1 +(0

+(1 +0)/2)/2)/2
= (1 + (0 + 0.5)/2 )/2
= (1 + 0.25) / 2 = 0.625

Nf(«0.01(3)») = 13-2 = = 0.(1)


ПримерыN(«1.101(2)») = 120 +12-1 +02-2 +12-3 			  = 1 + 0.5 + 0.125 			  =

Слайд 19Целая часть числа Nf*b (0 < Nf < 1) равна

первой цифре дробной части числа Nf Алгоритм А4: перевод дробной

части из 10-с. с. в b-с.с

Вход: Nf ( 0 ≤ Nf < 1), b >1;
i := -1;
цикл
([x]-взятие целой части числа)
( остается в том же диапазоне )
i := i – 1;
пока
k := i;
Выход: набор (число значащих цифр).
Алгоритм А4 может не завершиться, если данное число не представимо конечной дробью в b-с.с

Требуется k умножений (выражение Nf*b можно вычислять в цикле один
раз и хранить в промежуточной переменной).


Целая часть числа Nf*b (0 < Nf < 1) равна первой цифре дробной части числа Nf

Слайд 20Пример:

Пример:

Слайд 21Теорема Т2
Несократимая дробь p/q конечно представима в системе счисления с

основанием b в том и только в том случае, когда

все числа из разложения q на простые множители входят в такое же разложение b (количество повторений не учитывается).

Пример

121/675 конечна в 15-с.с.:
675 = 33*52; 15 = 3*5;

1/675 = 5*15-3 = 0.005(15);
121*5/15-3 = (2*152 + 10*151 + 5)/15-3 = 2/15-1 + 10/15-2 + 5/15-3
121/675 = 0.2A5(15);

1/10 бесконечна в 2-с.с. !!!!


Теорема Т2Несократимая дробь p/q конечно представима в системе счисления с основанием b в том и только в

Слайд 22 Алгоритм А5: (перевод дробной части из b-с.с. в 10-с.с)
Вход:

b > 1, к > 0 (число дробных цифр), набор

(S накапливает степень, — значение )
цикл по i от -1 вниз до -k


;
конец цикла
Выход:

2k операций *, /
k операций +

Алгоритм А5: (перевод дробной части из b-с.с. в 10-с.с)Вход:  b > 1, к > 0

Слайд 23 Алгоритм А6: перевод дробной части

из b-с.с. в 10-с.с. ( из формулы (7) по схеме

Горнера)

Вход: b >1, k > 0 (число цифр), набор

цикл по i от –k до -1

конец цикла;
Выход:

k операций + и /

Алгоритм А6:  перевод дробной части из b-с.с. в 10-с.с.  (

Слайд 24Число N в b-с.с. имеющее k дробных цифр, при умножении

на b становится целым (это умножение соответствует сдвигу точки на

k позиций вправо)

Алгоритм А7

• найти целое N1 = N * b1k (умножением или сдвигом точки);
• выполнить для N1 один из алгоритмов А1 или А2, затем АЗ;
• разделить полученный результат на b1k в системе b2
Число N в b-с.с. имеющее k дробных цифр, при умножении на b становится целым (это умножение соответствует

Слайд 25Пример
Перевести 101.101(2) в 10-с.с.
1) умножим на 23  101101(2)
2)

переведем в 10-с.с.  45
3) разделим: 45/8 = 5.625(10)

101.101=1*22+1*20+1*2-1+1*2-3=5+1/2+1/8=5.625


ПримерПеревести 101.101(2) в 10-с.с.1) умножим на 23   101101(2)2) переведем в 10-с.с.  453) разделим: 45/8

Слайд 26Кратные системы счисления
Если основания двух систем счисления

b1 и b2 связаны соотношением b2= b1m для некоторого

натурального т, то такие системы счисления называются кратными.

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

Сгруппируем цифры в b1-записи числа по m от точки влево и вправо (добавив при нехватке цифр нужное количество незначащих нулей):
Кратные системы счисления   Если основания двух систем счисления b1 и b2 связаны соотношением  b2=

Слайд 27затем также сгруппируем слагаемые в формуле (5) (они содержат множитель

b1 в степени, равной индексу цифры), вынесем за скобки из

каждой группы i общий множитель
(b1im = (b1m)i = b2i)
и обозначим для каждой группы

Тогда значение исходного числа может быть представлено в виде:

N(S’) = Ak’* b2k’ + … + Ai* b2i + ... + А0*b20 + А-1*b2-1+ … А-j b2-j,

что по определению совпадает со значением записи того же числа в b2-с.c. c цифрами Аi, если заметить, что Аi, действительно могут принимать все значения от 0 до b1m − 1 = b2 − 1.

затем также сгруппируем слагаемые в формуле (5) (они содержат множитель b1 в степени, равной индексу цифры), вынесем

Слайд 28Таблицы соответствия последовательностей цифр кратных с.с.

Таблицы соответствия последовательностей цифр кратных с.с.

Слайд 29Алгоритм А8: перевод из меньшей кратной с.с. в большую
Вход:

b1 > 1, b2 = b1m, b1 - представление числа;

разбить число на группы по т цифр, начиная от точки, в обе стороны (если в крайних группах цифр меньше т, добавить незначащие нули: в целой части спереди, в дробной сзади);
• заменить каждую группу b2-цифрой по формуле (8) или таблице.

Выход: b2 -представление исходного числа.
Алгоритм А8: перевод из меньшей кратной с.с. в большую Вход: b1 > 1, b2 = b1m, b1

Слайд 30Алгоритм А9: перевод из большей кратной с.с. в меньшую
Вход: b1>

1, b2= b1m; b2-представление числа;

заменить каждую b2-цифру цепочкой

из т b1-цифр по формуле (8) или таблице;
отбросить незначащие нули слева и справа.

Выход: b1-представление исходного числа.
Алгоритм А9: перевод из большей кратной с.с. в меньшуюВход: b1> 1, b2= b1m; b2-представление числа;  заменить

Слайд 31Универсальные алгоритмы для арифметических операций
Все так называемые численные алгоритмы

для арифметических операций сложения, вычитания, умножения и деления (в том

числе, вычисления «столбиком») являются символьными, потому что оперируют входными, выходными и промежуточными данными как строками символов.
Символьные вычисления являются формальными в том смысле, что манипулируют только знаками, не обращаясь к их значениям.
Абстрагирование от смысла данных различной природы и описание алгоритма в терминах чисто символьных преобразований является одним из основных методов программирования обработки данных произвольной природы
Универсальные алгоритмы для арифметических операций Все так называемые численные алгоритмы для арифметических операций сложения, вычитания, умножения и

Слайд 32Алгоритм А10: сложение двух чисел
Вход: две строки цифр, представляющие

слагаемые;
• выравнивание: расположить слагаемые одно под другим в произвольном порядке

так, чтобы разряды с одинаковым весом находились друг под другом; если какое-то число короче других слева или справа, дополнить его нулями;
• начальные установки:
обнулить цифру переноса в следующий разряд;
установить результат равным пустой строке;
• цикл по текущему разряду от младшего до старшего:
определить сумму переноса и цифр в столбце текущего разряда чисел; младшую цифру суммы записать в текущий разряд результата, старшую — в перенос;
конец цикла;
• окончание: если перенос не равен 0, то дописать перенос в начало результата

Выход: строка, представляющая результат.
Алгоритм А10: сложение двух чисел Вход: две строки цифр, представляющие слагаемые;• выравнивание: расположить слагаемые одно под другим

Слайд 33Единственное место в этом алгоритме, где присутствует
обращение к значениям

цифровых символов, — это поразрядное сложение в цикле.
Действительно, из

одного лишь вида знаков «2» и «3» нельзя извлечь информацию, что результатом их сложения будет знак «5».
Эти сведения можно задать, например, двумя таблицами сложения: в одной для каждой пары цифр записать младшую цифру результата, в другой — цифру переноса («0» или «1»);
исчерпав таким образом все немногочисленные случаи, можно заменить операцию сложения значений операцией выборки знака из таблицы.
Чтобы учесть сложение с переносом, можно завести две пары
таблиц или записать в каждую клетку по две цифры.
Единственное место в этом алгоритме, где присутствует обращение к значениям цифровых символов, — это поразрядное сложение в

Слайд 34Алгоритм А10 замечателен тем, что применим к произвольной позиционной с.

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







Нетрудно обобщить алгоритм А10 для

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

Алгоритм А10 замечателен тем, что применим к произвольной позиционной с. с. при соответствующей замене таблиц сложения.Нетрудно обобщить

Слайд 35Особенности умножения и деления на основание системы счисления
В b-с.

с. число b всегда имеет представление «10(b)».
Умножение на b

сводится просто к дописыванию 0 справа к
целому числу или (что то же), сдвигом b-ичной точки на один
разряд вправо.
Деление на b равносильно сдвигу точки на один разряд влево
или отбрасыванию младшей цифры целого числа — при делении
нацело.
Аналогично число b всегда представляется единицей с k нулями,
а умножение (деление) на b сводится к сдвигу точки на k
позиций вправо (влево).
Остатком от деления целого числа нацело на b является число,
составленное из k младших цифр. Добавление k нулей справа и
отбрасывание k младших цифр можно рассматривать как две
новые операции арифметического сдвига на k позиций.
Особенности умножения и деления на основание системы счисления В b-с. с. число b всегда имеет представление «10(b)».

Слайд 36Арифметические сдвиги
Добавление k нулей справа и отбрасывание k младших цифр

можно рассматривать как операции арифметического сдвига на k позиций.
В Си

определены операции арифметического сдвига на k позиций, которые равносильны умножению или целочисленному делению на 2k.
<< — сдвиг влево
>> — сдвиг вправо
Примеры:
a = 5 << 3; /* после выполнения присваивания a будет иметь значение 40 */
b = 112 >> 4; /* b будет равно 7 */

Арифметические сдвигиДобавление k нулей справа и отбрасывание k младших цифр можно рассматривать как операции арифметического сдвига на

Слайд 37Особенности двоичной арифметики
Если сопоставить нулю логическую «ложь», а единице

— «истину»,
то таблица сложения совпадет с таблицей значений для

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

Другая аналогия — «минимаксная»: нетрудно видеть, что
ab = min(a,b), a+b = min(a,b)+ max(a,b).

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

Слайд 38Сложность арифметических алгоритмов
Затраты памяти на хранение чисел и времени

на выполнение операций
с ними зависят от длины записи числа в

цифрах рабочей системы
счисления.
Для заданной b-с. с. следующие величины:
kn — длина записи (натурального) числа N,
Nk — максимальное натуральное число, записываемое k цифрами,
связаны соотношениями:
kn = [logbN] + 1, где [x] — наибольшее целое, не превышающее x;
Nk = bk − 1.

Верхние оценки для размера результата арифметической операции
над парой целых чисел N1 и N2 (пусть N1 > N2):
для сложения и вычитания — kN1 +1,
для умножения — kN1 + kN2,
для деления — kN1 +1, (так как N2 > 1).

Сложность арифметических алгоритмов Затраты памяти на хранение чисел и времени на выполнение операцийс ними зависят от длины

Слайд 39Время исполнения
Алгоритмы сложения содержат один проход по всем
разрядам

числа, причем каждый разряд обрабатывается
не более одного раза. Поэтому время

работы алгоритма
сложения линейно по k: Тслож(k)~k.
Алгоритмы умножения и деления выполняют сложение
и вычитание несколько раз (не более, чем k), со сдвигом
на одну позицию. Так как время сложения линейно, время
умножения и деления квадратично по k: Tyмн ~k2,, Tдел (k) ~ k2.
В системах команд компьютеров есть команды типа сложения
и умножения, которые работают не с отдельными битами, а с
байтами; они обычно рассматриваются как элементарные.
Проведенные выше оценки сохраняют свою силу, если
заменить базовую с. с. кратной ей (со степенью кратности
равной длине слова).
Время исполнения Алгоритмы сложения содержат один проход по всем разрядам числа, причем каждый разряд обрабатываетсяне более одного

Слайд 40Упражнения
1. Выразить целую часть 17.5 * X через сложение и

операции поразрядных сдвигов числа X вправо и влево.


17.5(10) = 16 + 1 + 0.5 = 24 + 20 + 2–1 = 10001.1(2)
17.5 *X = X* (24 + 20 + 2–1 ) =
= X*24 + X*20 + X*2–1 =
= (X << 4) + X + (X >> 1)
2. Если 120(x) делится на 11(10), то как выглядит (чему равно?) 310 в системе счисления с основанием x?
Подбором можно определить, что x = 9, т.к. 120(9) = 99(10) – делится на 11 без остатка.
310 = 32*5= (32)5 = 95 = 100000(9)
Упражнения1. Выразить целую часть 17.5 * X через сложение и операции поразрядных сдвигов числа X вправо и

Обратная связь

Если не удалось найти и скачать доклад-презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое TheSlide.ru?

Это сайт презентации, докладов, проектов в PowerPoint. Здесь удобно  хранить и делиться своими презентациями с другими пользователями.


Для правообладателей

Яндекс.Метрика