ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 20.06.2021

Просмотров: 305

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

A(p) = an-1pn-1 + an-2pn-2 + …+ a1p1 + a0p0 + a-1p-1 + a-2p-2 +…+ a-mp-m (18)

Таблица 2. Значения отрицательных степеней по основанию числа 2

Отрицательная степень

Два в указанной степени

1

0,5

2

0,25

3

0,125

4

0,0625

5

0,03125

6

0,015625

7

0,0078125

Таблица 3. Значения отрицательных степеней по основанию числа 16

Отрицательная степень

Шестнадцать в указанной степени

1

0,0625

2

0,00390625

3

0,000244140625

4

0,0000152587890625

5

0,00000095367431640625

6

0,000000059604644775390625

7

0,0000000037252902984619140625

Общий алгоритм перевода десятичной дроби в другую систему счисления можно представить следующей последовательностью шагов.

1. Выделить целую часть десятичной дроби и выполнить ее перевод в выбранную систему счисления по алгоритмам, рассмотренным ранее.

2. Выделить дробную часть и умножить ее на основание выбранной новой системы счисления.

3. В полученной после умножения дробной части десятичной дроби выделить целую часть и принять ее в качестве значения первого после запятой разряда числа в новой системе счисления.

4. Если дробная часть значения, полученного после умножения, равна нулю, то прекратить процесс перевода. Процесс перевода можно прекратить также в случае, если достигнута необходимая точность вычисления. В противном случае вернуться к шагу 3.

Пример. Пусть требуется перевести в двоичную систему счисления десятичную дробь 108,40610.

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

Перевод чисел со знаком

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


Дополнительный код некоторого отрицательного числа представляет собой результат инвертирования (замены 1 на 0 и наоборот) каждого бита двоичного числа, равного модулю исходного отрицательного числа плюс единица. К примеру, рассмотрим десятичное число -18510. Модуль данного числа в двоичном представлении равен 101110012. Сначала нужно дополнить это значение слева нулями до нужной размерности — байта, слова и т. д. В данном случае дополнить нужно до слова, так как диапазон представления знаковых чисел в байте составляет -128...127. Следующее действие — получить двоичное дополнение. Для этого все разряды двоичного числа нужно инвертировать:

00000000101110012 1111111010001102

Теперь прибавляется единица:

1111111010001102 + 0000000000000001 = 1111111010001112

Результат преобразования равен 11111111010001112. Именно так и представляется число -18510 в компьютере.

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

1. Выполнить инвертирование битов двоичного дополнения.

2. К полученному двоичному числу прибавить двоичную единицу. К примеру, определим модуль двоичного представления числа

-18510 = 11111111010001112.

Сначала инвертируем биты:

11111111010001112 00000000101110002.

Добавляем двоичную единицу: 00000000101110002 + 00000000000000012 = 00000000101110012 = |-185|.

II. Перечень вариантов заданий к контрольной работе.

1. Переведите числа в десятичную систему, а затем проверьте результаты, выполнив обратные переводы:

 

а) 10110112;

е) 5178;

л) 1F16

б) 101101112;

ж) 10108

м) ABC16

в) 0111000012;

з) 12348;

н) 101016;

г) 0,10001102;

и) 0,348;

о) 0,А416;

д) 110100,112;

к) 123,418;

п) 1DE,C816.

2. Переведите числа из десятичной системы в двоичную, восьмеричную и шестнадцатеричную, а затем проверьте результаты, выполнив обратные переводы:

      а) 12510;      б) 22910;     в) 8810;      г) 37,2510;      д) 206,12510.

3. Переведите числа из двоичной системы в восьмеричную и шестнадцатеричную, а затем проверьте результаты, выполнив обратные переводы:

 

а) 1001111110111,01112;

 г) 1011110011100,112;

б) 1110101011,10111012;

д) 10111,11111011112;

в) 10111001,1011001112;

е) 1100010101,110012.

4. Переведите в двоичную и восьмеричную системы шестнадцатеричные числа:

      а) 2СE16;     б) 9F4016;     в) ABCDE16;     г) 1010,10116;     д) 1ABC,9D16.

5. Сложите числа, а затем проверьте результаты, выполнив соответствующие десятичные сложения:

а) 10111012 и 11101112;

д) 378 и 758;

и) A16 и F16;

б) 1011,1012 и 101,0112;

е) 1658 и 378;

к) 1916 и C16;

в) 10112, 112 и 111,12;

ж) 7,58 и 14,68;

л) A,B16 и E,F16;

г) 10112 , 11,12 и 1112;

з) 68, 178 и 78;

м) E16, 916 и F16.

7. Запишите числа в прямом коде (формат 1 байт):

      а) 31;      б) -63;    в) 65;    г) -128.

III. Порядок выполнения, оформления отчета и защиты контрольной работы.

Контрольной работа выполняется студентами по индивидуальному заданию (варианту). Изменение варианта работы производится с разрешения преподавателя.


Результатом лабораторной работы является программа. Программа может быть разработана в одной из сред языков программирования: С, С++, Pascal. При этом каждое действие, происходящее в программе, комментируется его описанием. При работе над программой допускается пользоваться справочной литературой языка программирования.

Отчет по работе оформляется на листах формата А4 в соответствии с требованиями СТП. В содержание отчета в обязательном порядке должны войти следующие разделы:

1. Теоретическая часть – содержит теоретическое описание решение задачи, строго соответствующее полученному варианту. Например, вариант содержит задание: перевести десятичное число в двоичную систему счисления. Тогда в теоретическом описании должна быть представлена методика перевода десятичных чисел в двоичную систему счисления.

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

3. Листинг программы (или диск с исходным кодом программы) – содержит полную работающую версию программы с комментариями.

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

IV. Материальное обеспечение.

Для выполнения лабораторной работы используются компьютеры класса Р-IV с установленным программным обеспечением: ОС – MS Windows, среда программирования – С, С++, Pascal.

V. Литература.

1. Юров В.И. Assembler. Учебник для вузов. 2-е изд. – СПб: Питер, 2004. – 637с.

2. Assembler: практикум / В. Юров – СПб: Питер, 2003. – 400с.