I. Основные теоретические сведения

Лабораторная работа № 1

Системы счисления

Цель: Знание: основ представления чисел в 2,8, 16-ричных системах счисления; перевода чисел из одной системы счисления в другую; основных видов форматов представления чисел.

Задание для самостоятельной подготовки

1. Изучить представления чисел в компьютере.

2. Изучить содержание и порядок выполнения лабораторной работы.

 

I. Основные теоретические сведения

 

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

Двоичное представление — это способ записи числовых значений, в котором используются только 0 и 1, а не 0, 1, 2, 3, 4, 5, 6, 7, 8 и 9, как в традиционной, десятичной, системе счисления. В двоичном представлении каждая позиция в записи числа также, как и в десятичной соответствует определенному разряду, при движении по записи числа влево вес разряда каждый раз увеличивается в два раза. Более точно, вес разряда последнего числа справа равен единице (2°), вес разряда следующего числа равен двум (21), следующего — четырем (22), следующего — восьми (23) и т. д. Например, в двоичной записи 1011 самая крайняя справа 1 соответствует весу разряда, равному единице, следующая единица — весу разряда, равному двум, 0 соответствует весу разряда, равному четырем, а самая крайняя слева 1 — весу разряда, равному восьми.

Последовательность двоичных записей, соответствующих десятичным числам от 0 до 8, выглядит следующим образом: 0, 1, 10, 11, 100, 101, 110, 111, 1000.

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

Шаг 1. Разделите число на два и запишите остаток деления.

Шаг 2. До тех пор пока частное не равно нулю, продолжайте делить частные на два и записывать остаток.

Шаг 3. Когда частное станет равно нулю, двоичная запись числа будет состоять из остатков деления, выписанных справа налево в том порядке, в каком они были получены.

Для хранения целых чисел принята система кодирования, называемая представлением в дополнительном коде, потому что она дает возможность кодирования и положительных, и отрицательных чисел. Для хранения чисел с дробной частью, таких как 41/2 используется другая форма, называемая представлением чисел с плавающей точкой. Таким образом, отдельное значение (например, 25) может быть представлено различными последовательностями битов (как символ, закодированный в стандарте ASCII; в представлении в дополнительном коде или в форме с плавающей точкой, как 250/2), и наоборот, отдельную последовательность битов можно интерпретировать по-разному.

При представлении дробей используется точка, чтобы отделить целую часть от дробной части. Цифры слева от точки являются целой частью числа и записываются в двоичном представлении по принципу, изложенному выше. Цифры справа от точки являются дробной частью числа и записываются так же, как целые, с той лишь разницей, что каждой позиции в записи числа соответствует разряд, вес которого является дробным числом. То есть вес разряда, соответствующего первой позиции после точки, равен 1/2, второй позиции — 1/4, следующей — 1/8 и т. д. Для сложения двух чисел применяется методика, которая используется и для целых чисел. То есть, чтобы получить сумму двух дробных чисел, записываем числа одно под другим так, чтобы точки находились в одном столбце, и выполняем те же действия, как с целыми числами. Например, числа 10.011 и 100.101 в сумме дают 111.000:

+ 10.011

100.101

111.000

 

Наиболее распространенной системой представления целых чисел в современных компьютерах является представление в двоичном дополнительном коде. Эта система использует фиксированное число битов для представления числового значения. В современном оборудовании принято использовать представление, при котором каждому значению отводится 32 бита. В представлении в двоичном дополнительном коде крайний слева разряд обозначает знак числа. Поэтому его часто называют знаковым разрядом. Знаковый разряд отрицательных чисел равен 1, а положительных чисел — 0.

Существует удобное соотношение между записью положительного и отрицательного чисел, одинаковых по модулю. Они совпадают, если их читать справа налево, до первой единицы включительно, а с этого места они являются дополнениями друг друга (дополнением набора битов является набор битов, который получается путем замены всех нулей на единицы и наоборот; например, 0110 и 1001 — дополнения друг друга). Например, в 4-битовом представлении записи чисел 2 и -2 заканчиваются на 10, но запись числа 2 начинается с 00, а числа -2 — с 11. Это наблюдение помогает найти алгоритм для получения записи отрицательного числа из записи положительного и наоборот, когда эти числа равны по модулю. Мы просто переписываем исходную последовательность до тех пор, пока не будет переписана единица, затем мы переписываем оставшиеся разряды, заменяя их дополнениями (рис. 2). Обратите внимание, что самое маленькое отрицательное число в представлении в дополнительном коде не имеет положительного эквивалента.

Рисунок 2 – Представление числа -6 в 4-битовом дополнительном коде

 

Понимание основных свойств представления в двоичном дополнительном коде ведет к алгоритму его декодирования. Если знаковый бит записи равен 0, то нужно просто читать значение, как если бы эта последовательность была двоичной записью числа. Например, 0110 является представлением числа 6, потому что 110 является двоичной записью шести. Если знаковый разряд равен 1, значит, перед нами отрицательное число и нам остается только найти его модуль. Переписываем исходную последовательность справа налево, пока не будет переписана 1, затем переписываем оставшиеся биты, дополняя их. И, наконец, расшифровываем полученную последовательность, как если бы она была двоичной записью числа.

Например, для того чтобы перевести последовательность 1010 в десятичную систему счисления, мы сначала определяем, что перед нами отрицательное число, так как знаковый разряд равен 1. Следовательно, переписываем запись как 0110. Определяем, что она является представлением числа 6, и делаем вывод о том, что исходный набор битов является представлением числа -6.

Сложение в двоичном дополнительном коде. Для сложения чисел в двоичном дополнительном коде применяется такой же алгоритм, как для двоичного сложения, только в этом случае все коды, включая результат операции, будут иметь одинаковую длину. Это означает, что если в результате сложения появляется дополнительный бит с левого края, он будет отсечен. Именно поэтому 0101 и 0010 в сумме дают 0111, а сумма 0111 и 1011 равна 0010 (0111 + 1011 = 10010, которая усекается до 0010).

Рассмотрим три примера сложения в дополнительном коде (рис. 3). В каждом случае десятичная запись была представлена 4-битовым кодом, а результат сложения опять переведен в десятичную систему счисления.

Рисунок 3 – Сложение чисел в двоичном дополнительном коде

 

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

111 3

110 2

101 1

100 0

011 -1

010 -2

001 -3

000 -4

Рисунок 4 - 3-битовое представление с избытком

 

Очевидно, что 3-битовое представление с избытком является представлением с избытком четыре, а 4-битовое представление с избытком является представление с избытком 8. Для того чтобы понять, почему это так, сначала переведите коды в десятичную систему счисления, как обычный двоичный код, и сравните полученные значения со значениями в таблице. В каждом случае вы обнаружите, что полученный результат превосходит код в представлении с избытком на восемь. Например, последовательность 1100 в двоичной системе является кодом 12, но в представлении с избытком она является кодом 4; последовательность 0000 в двоичной системе является кодом 0, а в представлении с избытком — кодом 8. Можно заметить, что код с одной 1 в позиции старшего разряда находится примерно посередине списка. Пусть он будет представлением нуля; коды до него используются для представления 1, 2, 3 и т. д., коды после него используются для -1, -2, -3 и т. д. Окончательный вариант таблицы 4-битовых кодов изображен на рис. 1.23. Можно заметить, что число 5 имеет код 1101, а число -5 имеет код 0011. Обратите внимание на то, что различие между представлением в двоичном дополнительном коде и избыточном коде заключается в том, что знаковый разряд у них имеет противоположное значение.

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

Рисунок 5 – Структура представления записи числа с плавающей точкой на примере 1 байта

 

В этой структуре старший разряд бита является знаковым разрядом. Как и раньше, 0 в позиции знакового разряда означает, что число неотрицательное, 1 в позиции знакового разряда означает, что число отрицательное. Следующие три бита являются полем порядка в представлении с избытком 4, а оставшиеся четыре бита являются полем мантиссы.

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

 

Таблица 1 - Шестнадцатеричная система счисления

 

Последовательность битов Шестнадцатеричное представление
A
B
C
D
E
F

 

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

 

II. Варианты индивидуальных заданий

Задание

1. Перевести числа из десятичной системы счисления в двоичную и шестнадцатеричную систему счисления.

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

3. Сложить числа.

4.Найти десятичный эквивалент чисел, заданных в представлении с плавающей точкой.

5. Перевести числа в представлении с плавающей точкой.

Примечание. В заданиях 3–5 проверять правильность вычислений переводом исходных данных и результатов в десятичную систему счисления.

Вариант 1

1. а) 860(10); б) 785(10); в) 149,375(10); г) 953,25(10); д) 228,79(10).

2. а) 10001010(2); б) 11100111(2); в) 11010110(ДДК); г) 111111100(ДДК).

3. а) 1101100000(2) + 10110110(2); б) 101110111(2) + 1000100001(2); в) 1001000111,01(2)+100001101,101(2).

4. а) 10110010; б) 11100011.

5. а) 11/2; б) 42/3.

Вариант 2

1. а) 250(10); б) 757(10); в) 711,25(10); г) 914,625(10); д) 261,78(10).

2. а) 1111000(2); б) 1111000000(2); в) 11101100(ДДК); г) 10011110(ДДК);

3. а) 1010101(2)+10000101(2); б) 1111011101(2)+101101000(2); в) 100100111,001(2)+100111010,101(2);

4. а) 10010010; б) 11101110.

5. а) 13/4; б) 41/5.

Вариант 3

1. а) 759(10); б) 265(10); в) 79,4375(10); г) 360,25(10); д) 240,25(10).

2. а) 1001101(2); б) 10001000(2); в) 10011001(ДДК); г) 01111010(ДДК).

3. а) 100101011(2)+111010011(2); б) 1001101110(2)+1101100111(2); в) 1010000100,1(2)+11011110,001(2).

4. а) 11001100; б) 11100011.

5. а) 11/2 ; б) 31/4.

Вариант 4

1. а) 216(10); б) 336(10); в) 741,125(10); г) 712,375(10); д) 184,14(10).

2. а) 1100000110(2); б) 1100010(2); в) 01011010(ДДК); г) 10101000(ДДК).

3. а) 101111111(2)+1101110011(2); б) 10111110(2)+100011100(2); в) 1101100011,0111(2)+1100011,01(2).

4. а) 10101011; б) 01010001.

5. а) 15/7; б) 11/4.

Вариант 5

1. а) 530(10); б) 265(10); в) 597,25(10); г) 300,375(10); д) 75,57(10).

2. а) 101000111(2); б) 110001001(2); в) 01001101(ДДК); г) 10111101(ДДК).

3. а) 1100011010(2)+11101100(2); б) 10111010(2)+1010110100(2); в) 1000110111,011(2)+1110001111,001(2).

4. а) 01100101; б) 11011010.

5. а) 25/7; б) 15/6.

Вариант 6

1. а) 945(10); б) 85(10); в) 444,125(10); г) 989,375(10); д) 237,73(10).

2. а) 110001111(2); б) 111010001(2); в) 01001101(ДДК); г) 10000100(ДДК).

3. а) 1000011101(2)+101000010(2); б) 100000001(2)+1000101001(2); в) 101111011,01(2)+1000100,101(2).

4. а) 01000101; б) 10111010.

5. а) 35/7; б) 25/6.

Вариант 7

1. а) 287(10); б) 220(10); в) 332,1875(10); г) 652,625(10); д) 315,21(10).

2. а) 10101000(2); б) 1101100(2); в) 01001000(ДДК); г) 11100101(ДДК).

3. а) 1100110(2)+1011000110(2); б) 1000110(2)+1001101111(2); в) 101001100,101(2)+1001001100,01(2).

4. а) 10111111; б) 01110011.

5. а) 51/2; б) 12/5.).

Вариант 8

1. а) 485(10); б) 970(10); в) 426,375(10); г) 725,625(10); д) 169,93(10).

2. а) 10101000(2); б) 101111110(2); в) 10101010(ДДК); г) 11110011(ДДК).

3. а) 1010100111(2)+11000000(2); б) 1110010010(2)+110010111(2); в) 1111111,101(2)+101010101,101(2).

4. а) 01010100; б) 10110101.

5. а) 13/4 ; б) 41/2.

Вариант 9

1. а) 639(10); б) 485(10); в) 581,25(10); г) 673,5(10); д) 296,33(10).

2. а) 1011000011(2); б) 100010111(2); в) 1100101101,1(ДДК); г) 1000000000,01(ДДК).

3. а) 1000010100(2) + 1101010101(2); б) 1011001010(2)+101011010(2); в) 1110111000,101(2)+1101100011,101(2).

4. а) 01111100; б) 10110001.

5. а) 21/8; б) 51/2 .

Вариант 10

1. а) 618(10); б) 556(10); в) 129,25(10); г) 928,25(10); д) 155,45(10).

2. а) 1111011011(2); б) 1011101101(2); в) 01001110(ДДК); г) 10111100(ДДК).

3. а) 11111010(2)+10000001011(2); б) 1011010(2)+1001111001(2); в) 10110110,01(2)+1001001011,01(2);

4. а) 01111011; б) 10001101.

5. а) 31/2; б) 41/3.

Вариант 11

1. а) 772(10); б) 71(10); в) 284,375(10); г) 876,5(10); д) 281,86(10).

2. а) 1000001111(2); б) 1010000110(2); в) 01011001(ДДК); г) 10010011(ДДК).

3. а) 1100111(2)+1010111000(2); б) 1101111010(2)+1000111100(2); в) 1111101110,01(2)+1110001,011(2).

4. а) 01010101; б) 10001000.

5. а) 41/3; б) .11/5

Вариант 12

1. а) 233(10); б) 243(10); в) 830,375(10); г) 212,5(10); д) 58,89(10).

2. а) 1001101111(2); б) 1000001110(2); в) 01111100(ДДК); г) 11010101(ДДК).

3. а) 1101111001(2)+1010010101(2); б) 1111001001(2)+1001100100(2); в) 100110010,011(2)+110001000,011(2).

4. а) 01000100; б) 11010001.

5. а)23/4 ; б) 31/3.

Вариант 13

1. а) 218(10); б) 767(10); в) 894,5(10); г) 667,125(10); д) 3,67(10).

2. а) 1111100010(2); б) 1000011110(2); в) 01011001(ДДК); г) 10011110(ДДК).

3. а) 1000011111(2)+1111100(2); б) 1011100011(2)+111110110(2); в) 111111100,1(2)+1011100100,1(2).

4. а) 01101001; б) 11100101.

5. а) 13/4; б) 31/8 .

Вариант 14

1. а) 898(10); б) 751(10); в) 327,375(10); г) 256,625(10); д) 184,4(10).

2. а) 101110100(2); б) 1111101101(2); в) 11101001(ДДК); г) 10111110(ДДК).

3. а) 1001000000(2)+101010110(2); б) 11000010(2)+1001110100(2); в) 1011101110,1(2)+11100101,01(2).

4. а) 01010010; б) 11111101.

5. а) 31/4; б) 53/8.

Вариант 15

1. а) 557(10); б) 730(10); в) 494,25(10); г) 737,625(10); д) 165,37(10).

2. а) 101001101(2); б) 1110111100(2); в) 01001000; г) 10001101(ддк).

3. а) 1101100001(2)+1001101110(2); б) 1101010101(2)+101011001(2); в) 1101111110,011(2)+1100101101,1011(2).

4. а) 01111000; б) 11001101.

5. а) 32/5; 71/2.

Вариант 16

1. а) 737(10); б) 92(10); в) 934,25(10); г) 413,5625(10); д) 100,94(10).

2. а) 1110000010(2); б) 1000100(2); в) 110000100,001(ДДК); г) 1001011111,00011(ДДК).

3. а) 11110100(2)+110100001(2); б) 1101110(2)+101001000(2); в) 1100110011,1(2)+111000011,101(2).

4. а) 01000101; б) 10010110.

5. а) 42/3; б) 51/2.

Вариант 17

1. а) 575(10); б) 748(10); в) 933,5(10); г) 1005,375(10); д) 270,44(10).

2. а) 1010000(2); б) 10010000(2); в) 01111010000(ДДК); г) 101000011,01(ДДК).

3. а) 1011110101(2)+1010100110(2); б) 1001100011(2)+1110010010(2); в) 1111110100,01(2)+110100100,01(2).

4. а) 01100111; б) 11011110.

5. а) 24/5; б) 13/4.

Вариант 18

1. а) 563(10); б) 130(10); в) 892,5(10); г) 619,25(10); д) 198,05(10).

2. а) 11100001(2); б) 101110111(2); в) 1011110010(ДДК); г) 1100010101(ДДК).

3. а) 1100100011(2)+1101001111(2); б) 111101111(2)+10010100(2); в) 1010010000,0111(2)+111010100,001(2).

4. а) 01110011; б) 10110001.

5. а) 14/5; б) 53/4.

Вариант 19

1. а) 453(10); б) 481(10); в) 461,25(10); г) 667,25(10); д) 305,88(10).

2. а) 111001010(2); б) 1101110001(2); в) 1001010100(ДДК); г) 111111110(ДДК).

3. а) 101110001(2)+101111001(2); б) 1110001110(2)+1100110111(2); в) 10000011010,01(2)+1010010110,01(2).

4. а) 01111001(2); б) 11101010.

5. а) 14/5; б) 21/6.

Вариант 20

1. а) 572(10); б) 336(10); в) 68,5(10); г) 339,25(10); д) 160,57(10).

2. а) 1010110011(2); б) 1101110100(2); в) 1010101(ДДК); г) 1101000(ДДК).

3. а) 10001000(2)+1011010010(2); б) 111110011(2)+111110000(2); в) 1010001010,1011(2)+1101010100,011(2).

4. а) 01101110; б) 11000101.

5. а) 51/2; б) 14/5.