Системы счисления и внутреннее представление целых ( практическое занятие ) Преподаватель: Доцент Кафедры ВС, к.т.н. Поляков Артем Юрьевич © Кафедра вычислительных систем ФГОБУ ВПО «СибГУТИ» ФГОБУ ВПО "СибГУТИ" Кафедра вычислительных систем ОСНОВЫ ПРОГРАММИРОВАНИЯ
Перевод чисел между позиционными системами (способ 1) © Кафедра вычислительных систем ФГОБУ ВПО «СибГУТИ» 2 Перевод из системы счисления с основанием b в CC с основанием с: Примеры: x b x c x b = a N a N-1 … a 1 a 0 x c = (a N ) c (b c ) N + (a N–1 ) c (b c ) N-1 + … + (a 1 ) c (b c ) 1 + (a 0 ) c (b c ) = = = = AF 16 = = = = 4 16 A A = Вычисление в недесятичной системе счисления затруднительны Вычисление в недесятичной системе счисления затруднительны
Перевод чисел между позиционными системами (способ 2) © Кафедра вычислительных систем ФГОБУ ВПО «СибГУТИ» = Для перевода числа x a в систему с основанием b необходимо разделить x a на b. Деление продолжать до тех пор, пока частное не станет меньше b. Остатки от деления, записанные в обратном порядке, начиная с частного, будут искомым числом.
Задания 4 © Кафедра вычислительных систем ФГОБУ ВПО «СибГУТИ» I. Перевести число из одной системы счисления в другую: х х AFD 16 х х х х 16
Двоичная арифметика СЛОЖЕНИЕ © Кафедра вычислительных систем ФГОБУ ВПО «СибГУТИ» 5 x / yx / y x + y Примеры: , , ,001
Двоичная арифметика УМНОЖЕНИЕ © Кафедра вычислительных систем ФГОБУ ВПО «СибГУТИ» 6 x/y x y Примеры: *101 * _
Двоичная арифметика ВЫЧИТАНИЕ © Кафедра вычислительных систем ФГОБУ ВПО «СибГУТИ» 7 x – y Примеры: = -( ) x/y
Двоичная арифметика ДЕЛЕНИЕ © Кафедра вычислительных систем ФГОБУ ВПО «СибГУТИ» 8 Деление в двоичной системе счисления выполняется, как и в десятичной системе. Пример:
Арифметические действия в двоичной системе счисления. 9 © Кафедра вычислительных систем ФГОБУ ВПО «СибГУТИ» II. Выполнить указанные арифметические действия: * / III. Выполнить перевод из двоичной системы счисления в десятичную используя способ х 2
Обратный код 10 © Кафедра вычислительных систем ГОУ ВПО «СибГУТИ» Обратный код отрицательного числа в двоичной СС формируется путем инвертирования каждого разряда, включая знак, на противоположный. Также для формирования обратного кода можно использовать следующее выражение: из максимального числа, состоящего из 1-ц во всех разрядах, вычесть модуль отрицательного числа. -x = |x| (для 8-битных целых) = , – = – = – =
Обратный код (сумма) 11 © Кафедра вычислительных систем ГОУ ВПО «СибГУТИ» Сложение в обратном коде происходит следующим образом: по обычному алгоритму складываются все разряды, включая знаковый. Если результат имеет длину k+1 (был перенос при сложении старших разрядов операндов, иначе – нулю). Значение левого k+1-го разряда добавляется к младшему разряду результата. Получаем k-разрядный набор, который и будет суммой двух чисел в обратном коде. – = I (– ) = = II = = Вычитание чисел в обратном коде сводится к сложению x – y = x + (–y). Вычитание чисел в обратном коде сводится к сложению x – y = x + (–y).
Дополнительный код 12 © Кафедра вычислительных систем ГОУ ВПО «СибГУТИ» Положительные числа в дополнительном коде представляются в двоичной системе счисления. Для представления отрицательных чисел формируется число (M(k)+1), где M(k) – максимальное двоичное число разрядности k (1-цы во всех разрядах). Далее ( k = 8): M(8) + 1 = = – x = 0 – |x| = – |x| – 1 = 0 – 1 = – 1 = – = – = – = – 20 ноль имеет два представления в прямом и обратном коде, а в дополнительном коде представление нуля единственно.
Дополнительный код (сумма) 13 © Кафедра вычислительных систем ГОУ ВПО «СибГУТИ» В дополнительном коде сложение происходит так: по обычному алгоритму: складываются все разряды, включая знаковый; единица переноса в (k+1)-й разряд отбрасывается (сложение по модулю 2 k ). – = – = – = I (– ) = = Вычитание чисел в дополнительном коде сводится к сложению x – y = x + (–y). Вычитание чисел в дополнительном коде сводится к сложению x – y = x + (–y)
Дополнительный код 14 © Кафедра вычислительных систем ГОУ ВПО «СибГУТИ» Сложение и вычитание по модулю 2 k Связь дополнительного и обратного кодов: = + 1 Дополнительный код – х = 0 – |х| = – |х| – 1 = 0 – 1 = – 1 = Обратный код – х = 0 – |х| = – |х| – 1 = 0 – 1 = – 1 =
Сравнение различных представлений знаковых чисел (двоичная система, 3 бит) 15 © Кафедра вычислительных систем ГОУ ВПО «СибГУТИ» Битовый набор Без знака Прямой код Обратный код Доп. код –0–3–4 1015–1–2–3 1106–2–1–2 1117–3–0–1
Задания 16 © Кафедра вычислительных систем ГОУ ВПО «СибГУТИ» IV. Представить указанные числа в обратном и дополнительном коде (8-разрядном): V. Выполнить арифметические действия над указаннными числами в обратном и дополнительном коде: 1.19 – – 40