Решение задач на тему

«Представление чисел в компьютере».

Уровень «3»

 

1. Пусть для представления целых чисел в компьютере используется 16 - разрядная ячейка (2 байта). Определить каков диапазон хранимых чисел, если: а) используются только положительные числа; б) используются как положительные, так и отрицательные числа в равном количестве.

 

Решение:

Всего в 16 – разрядной сетке может храниться 216 =65536 значений. Следовательно:

а) диапазон значений  только положительных чисел от 0 до 65535 (от 0 до 2k -1, 1 отняли, так как одно значение пошло на кодировку числа 0);

б) диапазон значений положительных и отрицательных чисел в равном количестве рассчитаем так: 65536:2= 32768. Минимальное отрицательное число равно -32768. Так как число 0 также входит в этот диапазон, то максимальное положительное число будет равно 32767 (от -2 k-1 до 2 k-1 -1, действительно, так как 2k:2=2 k-1).

 

Ответ: а) от 0 до 65535; б) от -32768 до 32767.

 

 

 

 

 

Уровень «4»

2. Получить десятичное представление числа по его дополнительному коду 100101112

Решение:

1.) Инвертируем дополнительный код 100101112.

        Получим 01101000 – обратный код

2) Прибавим к полученному числу 1. Получим  число 01101001

3) Переведем полученную запись числа из двоичной в 10-ю форму. Получим число 105.

4) Перед полученным числом поставим знак «-»

 

 

Ответ: -105

 

 Уровень «5»

3.  Минимальное значение математического порядка в десятич­ной системе счисления равно (-1024). Чему равно смещение?

 

Решение:

Машинный порядок смещен относительно математичес­кого и имеет только положительные значения. Смещение вы­бирается так, чтобы минимальному математическому зна­чению порядка соответствовал нуль.

Связь между машинным порядком (Мр) и математическим (р) в рассматриваемом случае выражается формулой: Мр = р + 64, где 64 - смещение для представления в 64 байтовой ячейке памяти.

Если представить это на шкале,  то имеем:

-64                         0                              63

 

В данной задаче Минимальное значение математического порядка в десятич­ной системе счисления равно (-1024).

На шкале это можно представить так:

-1024                     0                         1023

Легко видеть, смещение равно 1024.

 

Ответ: 1024.

 

4. Получить шестнадцатеричную форму внутреннего представ­ления отрицательного числа -123,125 в формате с плавающей точкой в 4-х байтовой ячейке. ?

Решение:

 

Используем алгоритм  записи внутреннего представления вещественного числа:

 

1. Переведем модуль числа в двоичную систему счисления с 24 значащими цифрами.

12310 =11110112   0,12510 =0, 0012

123,12510  =1111011, 001000000000000002 (4 байта-32 разряда, 1 байт на знак и порядок, 3 байта или 24 бита на мантиссу)

2. Запишем в форме нормализованного двоичного числа с плавающей запятой:

0, 111101100100000000000000 х 102 111  (1112 =710 )

3. Вычислим машинный порядок в двоичной системе счисления.

Мр2 = р2 + 100 00002 = 1112 + 100 00002 = 10001112

4. Запишем представление числа в 4-х байтовой ячейке па­мяти с учетом знака числа:

 

1

1000111

1111 0110

0100 0000

0000 0000

31

            24   Мр2

23

 

              0

 

Шестнадцатеричная форма: - 47F64000.

Ответ: - 47F64000

5. В «игрушечном» компьютере для представления веществен­ных чисел используется однобайтовая ячейка памяти (биты нумеруются от 0 до 7 справа налево). 7-й бит — знак числа; 5 и 6 биты — машинный порядок; 4 — 0 биты — мантисса. Оп­ределить: 1) количество точно представимых вещественных чисел; 2) 7 наименьших десятичных чисел, представимых точно в таком компьютере.

 

Решение:

 

1.) Количество вещественных чисел, точно представимых в памяти компьютера, вычисляется по формуле: N = 2 t х (U - L + 1) + 1.

Здесь t — количество дво­ичных разрядов мантиссы; U — максимальное значение мате­матического порядка; L — минимальное значение порядка.

7

6

5

4

3

2

1

0

Знак числа              Машинный порядок      М                а           н         т             и              с           с           а

 

t =5. Максимальное значение машинного порядка 112 =310 . Всего значений порядка 4, L=-4:2 =-2, U=4:2-1=1

N = 2 5 х (1 - 2 + 1) + 1 = 129.

Ответ: 129.

2.) Первое наименьшее число:

   0

0

1

0

0

0

0

1

0,000012 =1/25 = 0,03125

Второе наименьшее число 0,000102 =1/24 =0,0625

Третье наименьшее число 0,000112 =1/24 +  1/25 =0,0625 +0,03125 =0,09375

Четвертое наименьшее число 0,001002 =1/23   = 0,125

Пятое  наименьшее число 0,001012 =1/23  + 1/25  = 0,125+ 0,03125 =0,15625

Шестое  наименьшее число 0,001102 =1/23  + 1/24  = 0,125+0,0625 =0,1875

Седьмое наименьшее число 0,001112 =1/23  + 1/24 + 1/25  = 0,125+0,0625+ 0,03125

 =0,21875

Ответ: 0,03125; 0,0625; 0,09375; 0,125; 0,15625; 0,1875; 0,21875

 

 

 

Уровень «4»

6. Произвести сложение, вычитание, умножение и деление чисел 0,1×22 и 0,1×2-2  в формате с плавающей запятой.

Решение:

Произведем выравнивание порядков и сложение мантисс:

0,1×2-2  = Х × 22 ,          Х = ( 0,1×2-2  )/ 22= 0,1×2-4 = 0,00001

        0,10000 ×22

       +0,00001 ×22

         0,10001×25

Произведем вычитание мантисс и процедуру нормализации:

        0,10000 ×22

       - 0,00001 ×22

         0,01111×22 = 0,1111×21

 

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

 

         0,10000 ×22

       х 0,00001 ×22

       0,000001 ×24 , нормализуем ответ 0,1×2-1

Используем алгоритм деления чисел в формате с плавающей запятой: из порядка делимого вычесть порядок делителя, мантиссу делимого делить на мантиссу делителя.

 

         0,10000 ×22

       : 0,00001 ×22

          10 000 ×20, нормализуем ответ 0,1×25

 

Ответ: 0,10001×25;   0,1111×21;  0,1×2-1 ;   0,1×25