Лабораторная работа №2. Кодирование информации в ЭВМ.



Лабораторная работа №1. Системы счисления

Системой счисления называется совокупность приемов наименования и записи чисел. В любой системе счисления для представления чисел выбираются некоторые символы (их называют цифрами), а остальные числа получаются в результате каких-либо операций над цифрами данной системы счисления.

Система называется позиционной, если значение каждой цифры (ее вес) изменяется в зависимости от ее положения (позиции) в последовательности цифр, изображающих число.

Число единиц какого-либо разряда, объединяемых в единицу более старшего разряда, называют основанием позиционной системы счисления. Если количество таких цифр равно P, то система счисления называется P-ичной. Основание системы счисления совпадает с количеством цифр, используемых для записи чисел в этой системе счисления.

Запись произвольного числа x в P-ичной позиционной системе счисления основывается на представлении этого числа в виде многочлена

x = anPn + an-1Pn-1 + ... + a1P1 + a0P0 + a-1P-1 + ... + a-mP-m

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

При переводе чисел из десятичной системы счисления в систему с основанием P > 1 обычно используют следующий алгоритм:

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

2) если переводится дробная часть числа, то она умножается на P, после чего целая часть запоминается и отбрасывается. Вновь полученная дробная часть умножается на P и т.д. Процедура продолжается до тех пор, пока дробная часть не станет равной нулю. Целые части выписываются после двоичной запятой в порядке их получения. Результатом может быть либо конечная, либо периодическая двоичная дробь. Поэтому, когда дробь является периодической, приходится обрывать умножение на каком-либо шаге и довольствоваться приближенной записью исходного числа в системе с основанием P.

 

Примеры решения задач

 

1. Перевести данное число из десятичной системы счисления в двоичную:
а) 464(10); б) 380,1875(10); в) 115,94(10) (получить пять знаков после запятой в двоичном представлении).

Решение.

464 | 0 380 | 0 |1875 115 | 1 |94

232 | 0 190 | 0 0|375   57 | 1 1|88

116 | 0 95 | 1 0|75    28 | 0 1|76

58 | 0 47 | 1 1|5     14 | 0 1|52

а) 29 | 1 б) 23 | 1 1|0 в) 7 | 1 1|04

14 | 0 11 | 1           3 | 1 0|08

7 | 1 5 | 1           1 | 1 0|16

3 | 1 2 | 0

1 | 1 1 | 1

а) 464(10) = 111010000(2); б) 380,1875(10) = 101111100,0011(2); в) 115,94(10) » 1110011,11110(2) (в настоящем случае было получено шесть знаков после запятой, после чего результат был округлен).

Если необходимо перевести число из двоичной системы счисления в систему счисления, основанием которой является степень двойки, достаточно объединить цифры двоичного числа в группы по столько цифр, каков показатель степени, и использовать приведенный ниже алгоритм. Например, если перевод осуществляется в восьмеричную систему, то группы будут содержать три цифры (8 = 23). Итак, в целой части будем производить группировку справа налево, в дробной — слева направо. Если в последней группе недостает цифр, дописываем нули: в целой части — слева, в дробной — справа. Затем каждая группа заменяется соответствующей цифрой новой системы. Соответствия приведены в таблицах.

 

P

2 00 01 10 11
4 0 1 2 3

 

P

2 000 001 010 011 100 101 110 111
8 0 1 2 3 4 5 6 7

 

P

2 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111
16 0 1 2 3 4 5 6 7 8 9 A B C D E F

Переведем из двоичной системы в шестнадцатеричную число 1111010101,11(2).

001111010101,1100(2) = 3D5,C(16).

При переводе чисел из системы счисления с основанием P в десятичную систему счисления необходимо пронумеровать разряды целой части справа налево, начиная с нулевого, и в дробной части, начиная с разряда сразу после запятой слева направо (начальный номер -1). Затем вычислить сумму произведений соответствующих значений разрядов на основание системы счисления в степени, равной номеру разряда. Это и есть представление исходного числа в десятичной системе счисления.

2. Перевести данное число в десятичную систему счисления.

а) 1000001(2).

1000001(2)=1× 26+0× 25+0× 24+0× 23+0× 22+ 0× 21+1× 20 = 64+1=65(10).

Замечание. Очевидно, что если в каком-либо разряде стоит нуль, то соответствующее слагаемое можно опускать.

б) 1000011111,0101(2).

1000011111,0101(2)=1×29 + 1×24 + 1×23 + 1×22 + 1×21 + 1×20 + 1×2-2 + 1×2-4 = 512 + 16 + 8 + 4 + 2 + 1 + 0,25 + 0,0625 = 543,3125(10).

в) 1216,04(8).

1216,04(8)=1×83+2×82+1×81+6×80+4× 8-2 = 512+128+8+6+0,0625 = 654,0625(10).

г) 29A,5(16).

29A,5(16) = 2×162+9×161+10×160+5×16-1 = 512+144+10+0,3125 = 656,3125(10).

Для выполнения арифметических операций в системе счисления с основанием P необходимо иметь соответствующие таблицы сложения и умножения. Для P = 2, 8 и 16 таблицы представлены ниже.

Р =2

+ 0 1
0 0 1
1 1 10

 

 
´ 0 1
0 0 0
1 0 1

 

 

Р =8

+ 0 1 2 3 4 5 6 7
0 0 1 2 3 4 5 6 7
1 1 2 3 4 5 6 7 10
2 2 3 4 5 6 7 10 11
3 3 4 5 6 7 10 11 12
4 4 5 6 7 10 11 12 13
5 5 6 7 10 11 12 13 14
6 6 7 10 11 12 13 14 15
7 7 10 11 12 13 14 15 16

 

 
´ 0 1 2 3 4 5 6 7
0 0 0 0 0 0 0 0 0
1 0 1 2 3 4 5 6 7
2 0 2 4 6 10 12 14 16
3 0 3 6 11 14 17 22 25
4 0 4 10 14 20 24 30 34
5 0 5 12 17 24 31 36 43
6 0 6 14 22 30 36 44 52
7 0 7 16 25 34 43 52 61

 

 

Р =16

+ 0 1 2 3 4 5 6 7 8 9 A B C D E F
0 0 1 2 3 4 5 6 7 8 9 A B C D E F
1 1 2 3 4 5 6 7 8 9 A B C D E F 10
2 2 3 4 5 6 7 8 9 A B C D E F 10 11
3 3 4 5 6 7 8 9 A B C D E F 10 11 12
4 4 5 6 7 8 9 A B C D E F 10 11 12 13
5 5 6 7 8 9 A B C D E F 10 11 12 13 14
6 6 7 8 9 A B C D E F 10 11 12 13 14 15
7 7 8 9 A B C D E F 10 11 12 13 14 15 16
8 8 9 A B C D E F 10 11 12 13 14 15 16 17
9 9 A B C D E F 10 11 12 13 14 15 16 17 18
A A B C D E F 10 11 12 13 14 15 16 17 18 19
B B C D E F 10 11 12 13 14 15 16 17 18 19 1A
C C D E F 10 11 12 13 14 15 16 17 18 19 1A 1B
D D E F 10 11 12 13 14 15 16 17 18 19 1A 1B 1C
E E F 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D
F F 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E

 


 

´ 0 1 2 3 4 5 6 7 8 9 A B C D E F
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1 0 1 2 3 4 5 6 7 8 9 A B C D E F
2 0 2 4 6 8 A C E 10 12 14 16 18 1A 1C 1E
3 0 3 6 9 C F 12 15 18 1B 1E 21 24 27 2A 2D
4 0 4 8 C 10 14 18 1C 20 24 28 2C 30 34 38 3C
5 0 5 A F 14 19 1E 23 28 2D 32 37 3C 41 46 4B
6 0 6 C 12 18 1E 24 2A 30 36 3C 42 48 4E 54 5A
7 0 7 E 15 1C 23 2A 31 38 3F 46 4D 54 5B 62 69
8 0 8 10 18 20 28 30 38 40 48 50 58 60 68 70 78
9 0 9 12 1B 24 2D 36 3F 48 51 5A 63 6C 75 7E 87
A 0 A 14 1E 28 32 3C 46 50 5A 64 6E 78 82 8C 96
B 0 B 16 21 2C 37 42 4D 58 63 6E 79 84 8F 9A A5
C 0 C 18 24 30 3C 48 54 60 6C 78 84 90 9C A8 B4
D 0 D 1A 27 34 41 4E 5B 68 75 82 8F 9C A9 B6 C3
E 0 E 1C 2A 38 46 54 62 70 7E 8C 9A A8 B6 C4 D2
F 0 F 1E 2D 3C 4B 5A 69 78 87 96 A5 B4 C3 D2 E1

 

3. Сложить числа:
а) 10000000100(2) + 111000010(2) = 10111000110(2).
б) 223,2(8) + 427,54(8) = 652,74(8).
в) 3B3,6(16) + 38B,4(16) = 73E,A(16).

10000000100      223,2       3B3,6

+ 111000010    + 427,54     +38B,4

------------     -------      -----

10111000110      652,74      73E,A

 

4. Выполнить вычитание:
а) 1100000011,011(2) - 101010111,1(2) = 110101011,111(2).
б) 1510,2(8) - 1230,54(8) = 257,44(8).
в) 27D,D8(16) - 191,2(16) = EC,B8(16).

1100000011,011     1510,2      27D,D8

- 101010111,1      -1230,54    -191,2

--------------     -------     ------

110101011,111      257,44      EC,B8

 

5. Выполнить умножение:
а) 100111(2) ´1000111(2) = 101011010001(2).
б) 1170,64(8) ´ 46,3(8) = 57334,134(8).
в) 61,A(16) ´ 40,D(16) = 18B7,52(16).

            100111          1170,64            61,A

          *1000111         * 46,3           *40,D

     -------------   --------------      ----------

            100111          355 234           4F 52

     + 100111     + 7324 70       + 1868

          100111          47432 0        ----------

      100111          -------------         18B7,52

     -------------        57334,134

      101011010001

 

Задания:

 

  1. Переведите числа в десятичную систему, а затем проверьте результаты, выполнив обратные переводы:
110100,112; 123,418; 1DE,C816.
  1. Переведите числа из двоичной системы в восьмеричную и шестнадцатеричную, а затем проверьте результаты, выполнив обратные переводы:
1001111110111,01112;  1011110011100,112;
  1. Сложите числа, а затем проверьте результаты, выполнив соответствующие десятичные сложения:
10112, 112 и 111,12; 7,58 и 14,68; A,B16 и E,F16;
  1. Перемножьте числа, а затем проверьте результаты, выполнив соответствующие десятичные умножения:
1012 и 1111,0012; 6,258 и 7,128.
  1. Вычислите значения выражения:

101010 + (10616 - 110111012) - 128;

  1. Десятичное число 59 эквивалентно числу 214 в некоторой другой системе счисления. Найдите основание этой системы.

Лабораторная работа №2. Кодирование информации в ЭВМ.

 

1. Кодирование числовой информации  

Все числовые данные хранятся в машине в двоичном виде, т.е. в виде последовательности нулей и единиц, однако формы хранения целых и действительных чисел различны.

Для представления чисел в памяти ПК используются два формата:

-формат с фиксированной точкой (запятой) целые числа;

-формат с плавающей точкой (запятой) вещественные числа.

 

Представление целых чисел

Множество целых чисел, представленных в ЭВМ, ограничено. Диапазон значений зависит от размера ячеек памяти, используемых для их хранения.

Для целых чисел существуют два представления:

-беззнаковое;

-со знаком.

В К-разрядной ячейке может храниться 2к различных значений целых чисел.

Диапазон значений целых беззнаковых чисел (только положительные):

от 0 до 2к - 1

для 16-разрядной ячейки от 0 до 65535

для 8-разрядной ячейки от 0 до 255

Диапазон значений целых чисел со знаком (и отрицательные, и положительные в равном количестве):

от -2к-1 до 2к-1-1

для 16-разрядной ячейки от -32768 до 32767

для 8-разрядной ячейки от -128 до 127

Чтобы получить внутреннее представление целого положительного числа N, хранящегося в К-разрядной ячейке, необходимо:

1. перевести число N в двоичную систему счисления;

2. полученный результат дополнить слева незначащими нулями до К разрядов.

Пример:

Получить внутреннее представление целого числа 1607 в 2-х байтовой ячейке.

Решение:

N=1607=110010001112.

Внутреннее представление этого числа будет: 0000 0110 0100 0111. Шестнадцатеричная форма внутреннего представления числа: 0647.

Для представления целого отрицательного числа используется дополнительный код.

Дополнительным кодом двоичного числа X в N-разрядной ячейке является число, дополняющее его до значения 2N.

Получение дополнительного кода:

1. получить внутреннее представление положительного числа N (прямой код);

2. получить обратный код этого числа заменой 0 на 1 или 1 на 0 (обратный код);

3. к полученному числу прибавить 1.


Дата добавления: 2019-09-13; просмотров: 1535; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!