У вас вопросы?
У нас ответы:) SamZan.net

Тема- Переведення чисел

Работа добавлена на сайт samzan.net: 2015-07-10

Поможем написать учебную работу

Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 7.4.2025

ЛАБОРАТОРНА РОБОТА №2

Тема: Переведення чисел. Доповнювальний, прямий і зворотній код. Операції над цілими числами у двійковій системі числення.

ТЕОРЕТИЧНІ ПОЛОЖЕННЯ

1. Операції над цілими числами у двійковій системі числення. Доповнювальний, прямий і зворотній код.

          Правила виконання арифметичних дій над двійковими числами задаються таблицею1.  Правила арифметики в усіх позиційних системах аналогічні.

Таблиця 1. - Правила виконання арифметичних дій над двійковими числами

Двійкове додавання

Двійкове віднімання

Двійкове множення

0+0=0

0+1=1

1+0=1

1+1=10

0-0=0

1-0=1

1-1=0

10-1=1

0*0=0

0*1=0

1*0=0

1*1=1

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

Наприклад,

     1111101

    + 101101.01

         11011.01

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

     1001000.10

          Числа в двійковій системі віднімаються аналогічно числам в десятковій системі. При відніманні чисел в даному розряді, якщо цифра, що зменшується, менше цифри числа, що віднімається, позичають одиницю з наступного старшого розряду. При цьому одиниця, що позичається із старшого розряду, рівна двом одиницям даного розряду.

Наприклад,

         10101.11

     -     1011.01

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

           1010.10

  При здійсненні обчислень, звичайно, доводиться мати справу не тільки з цілими невід’ємними числами, але також з від’ємними.

  У програмуванні виділяють два типи чисел: беззнакові та знакові. Всі беззнакові числа вважаються невід’ємними, і всі їх розряди використовуються для задання абсолютної величини числа. Так, за допомогою одного байту можна закодувати цілі беззнакові числа від 0 до 255.

  Для представлення ж від’ємних чисел слід виділити один біт для знаку. Як правило, це старший біт. Якщо один біт в числі виділяється під його знак, таке число називається знаковим. Як правило, 0 у старшому (крайньому зліва) біті відповідає додатнім числам, а 1 - від’ємним.

  Представлення від’ємних чисел залежить від кількості байтів, яка відводиться на число. Для визначеності будемо розглядати однобайтові знакові числа.

  Виділяють три основних способи представлення від’ємних чисел:

  •  прямий код, який утворюється з коду відповідного додатного числа шляхом встановлення знакового біта в 1;
  •  обернений код, який утворюється шляхом заміни значення кожного біта на протилежне;
  •  додатковий код, який утворюється шляхом додавання 1 до молодшого біта оберненого коду.

Приклад. Розглянемо число -3. Двійковим еквівалентом відповідного додатного числа 3 є 00000011.

Прямий код. Встановимо знаковий біт в 1 (нагадаємо, що 1 в старшому біті знакового числа сигналізує про його від’ємність). Всі інші біти залишаються без змін. В результаті вийде 10000011.

Обернений код. Замінимо кожний біт на протилежний (1 на 0; 0 на 1); результатом буде 11111100.

Додатковий код. Додамо 1 до оберненого коду; в результаті вийде 11111101. Зверніть увагу, що якщо розглядати послідовність 11111101 як беззнакове, а не як знакове число, вона інтерпретується як додатнє число 253.

         

Приклад 1. Числа А, –А, С и –С представити в прямому, оберненму (зворотньому), доповнюваному кодах.

А = 30710 = 1001100112  С = 9110 = 10110112

[A]пр = [A]об = [A]дк = 0|000000100110011

[A]пр = 1|000000100110011

[–A]об = 1|111111011001100

[–A]дк = 1|111111011001100+1 = 1|111111011001101

[C]пр = [C]об = [C]дк = 0|000000001011011

[–C]пр = 1|000000001011011

[–C]об = 1|111111110100100

[–C]дк = 1|111111110100100+1 = 1|111111110100101

Приклад 2. Обчислити: А + B, AB, –AB. Нехай А=16010, B=4510.

[A]дк = 0|000000010100000

[–A]дк = 1|111111101100000

[B]дк = 0|000000000101101

[–B]дк = 1|111111111010011

А + B

A – B

–A – B

+

0|000000010100000

+

0|000000010100000

+

1|111111101100000

0|000000000101101

1|111111111010011

1|111111111010011

0|000000011001101

0|000000001110011

1|111111100110011

Приклад 3. Виконати додавання чисел, представленних в машинних кодах: A+C; –A+C; A+(– C); –A+(– C).

A = 30710 =1001100112  С = 9110 = 10110112

[A]дк = 0|000000100110011

[–A]дк = 1|111111011001101

[C]дк = 0|000000001011011

[–C]дк = 1|111111110100101

А + C

–A + C

+

0|000000100110011

+

1|111111011001101

0|000000001011011

0|000000001011011

0|000000110001110

1|111111100101000

А + (– C)

–A + (– C)

+

0|000000100110011

+

1|111111011001101

1|111111110100101

1|111111110100101

0|000000011011000

1|111111001110010

Зауваження. В ЕОМ операції віднімання, множення, ділення здійснюються за допомогою операції додавання. Наприклад, при відніманні від'ємник записується у доповняльному коді і віднімання заміняється додаванням. 

Приклад 4: 23 + 22 = 45

 

Приклад 5: 23 - 13 = 23 + (-13 ) = 10

(-13)10 = (1 0001101)пр. = (1 1110010)об. = (1 1110011)доп.

Приклад 6: 7 - 13 = 7 + (-13) = -6

Оскільки результат від'ємний (біт знаку містить одиницю), то він представлений у доповняльному коді. Для перевірки правильності виконання операції потрібно перейти до прямого коду, який визначає абсолютне значення результату. Для цього потрібно:

1. відняти від доповняльного кода 1: 11111010дк. - 00000001 = 11111001об.

2. проінвертувати обернений код для переходу до прямого: 10000110пр.

Приклад 7: (- 7 – 13) = (-7) +(-13) = -20

(-7)10

Прямий код:

1 0000111

Обернений код:

1 1111000

Доповняльний код:

1 1111001

(-13)10

Прямий код:

1 0001101

Обернений код:

1 1110010

Доповняльний код:

1 1110011

1 0010100пр. - прямий двійковий код числа ( -20 )10 

  1.  Виконання логічних операцій з цілими числами, представленими в машинних кодах

Кількість логічних операцій може бути обчислено за формулою , де n – число змінних. Із формули видно, що для двох змінних a і b логічних операцій 16. Основні із них: логічне додавання, логічне множення, логічне не, додавання по модулю 2.

Для виконання логічних операцій, використовують таблиці істинності:

Логічне додавання

a b

Логічне множення

a & b

Логічне

не

Додавання по модулю

a  b

a \ b

1

0

a \ b

1

0

a

a \ b

1

0

1

1

1

1

1

0

1

0

1

0

1

0

1

0

0

0

0

0

1

0

1

0

Приклади:

а) виконати логічне додавання чисел А і С:

0|000000100110011

0|000000001011011

0|000000101111011

б) виконати логічне множення чисел А і С:

&

0|000000100110011

0|000000001011011

0|000000000010011

в) виконати логічне додавання А і С по модулю 2.

0|000000100110011

0|000000001011011

0|000000101101000

г) виконати логічний зсув: вліво для чисел А і –А, вправо для С і –С

A

–A

0|000000100110011

1|111111011001101

Число

0|000001001100110

1|111110110011010

Результат зсуву вліво

C

–C

0|000000001011011

1|111111110100101

Число

0|000000000101101

0|111111111010010

Результат зсуву вправо

д) виконати логічний циклічний зсув: вліво для чисел А і –А, вправо для чисел С і –С

A

–A

0|000000100110011

1|111111011001101

Число

0|000010011001100

1|111101100110100

Результат зсуву вліво на 2 біта

 

C

–C

0|000000001011011

1|111111110100101

Число

0|000000000010110

0|011111111101001

Результат зсуву вправо на 2 біта

e) виконати арифметичний зсув: вліво для чисел А і –А, вправо для чисел С і –С 

A

–A

0|000000100110011

1|111111011001101

Число

0|000001001100110

1|111110110011010

Результат зсуву вліво

C

–C

0|000000001011011

1|111111110100101

Число

0|000000000101101

1|011111111010010

Результат зсуву вправо

КОНТРОЛЬНІ ЗАПИТАННЯ

  1.  Опишіть виконання арифметичних операцій в двійковій системі числення.
  2.  Яка відмінність між знаковими і беззнаковими числами?
  3.  Вкажіть, які існують способи представлення від’ємних чисел. Опишіть ці способи.


ЗАВДАННЯ

Завдання1. Записати в прямому коді наступні числа(n=8):

Варіант

1

2

3

4

5

Дані

10101

10011

100001

-00101

1101

Варіант

6

7

8

9

10

Дані

-1011101

-1011001

1001

0101

-101010

Варіант

11

12

13

14

15

Дані

100101

1010

-1011

-1101

101001

Варіант

16

17

18

19

20

Дані

-10101

10011

10101

-11011101

101111

Варіант

21

22

23

24

25

Дані

-101101

1000

1011010

1010001

011101

Варіант

26

27

28

29

30

Дані

-1001001

-100111

1011101

1010101

1101010

Завдання 2. Записати в доповнювальному  коді наступні числа (n=8):

Варіант

1

2

3

4

5

Дані

101011

-011011

101101

-101001

-1011000

Варіант

6

7

8

9

10

Дані

-100001

-1011111

1101

-1011101

1011101

Варіант

11

12

13

14

15

Дані

-101101

101101

101011

-11011

-101010

Варіант

16

17

18

19

20

Дані

101010

-101111

-100111

1010

1011101

Варіант

21

22

23

24

25

Дані

1011

-1101

110111

-1010

-10111

Варіант

26

27

28

29

30

Дані

10001

100001

1010101

1101111

1010101

Завдання 3. Зобразити у зворотньому і доповнювальному кодах відємні числа (n=8):

Варіант

1

2

3

4

5

Дані

-1000

-11111

-1011

-1101

-1001

Варіант

6

7

8

9

10

Дані

-1010

-0101

-0111

-1110

-1111

Варіант

11

12

13

14

15

Дані

-10111

-10011

-11011

-11101

-10001

Варіант

16

17

18

19

20

Дані

-11110

-11101

-1100

-10101

-11001

Варіант

21

22

23

24

25

Дані

-11100

-111011

-01011

-01110

-10011

Варіант

26

27

28

29

30

Дані

-110111

-100011

-10100

-1011110

-101010

Завдання 4. Скориставшись доповнювальними  кодами чисел, розрахувати S=A+B (n=8):

Варіант

1

2

3

4

5

дані             A=

                  B=

1011010

-1010001

-1011010

1010001

101010

-101101

-1010

1000

1011010

-1001001

Варіант

6

7

8

9

10

дані             A=

                  B=

1001

-1101

1010

-1101

10101

-10011

-101010

101110

-1011010

101101

Варіант

11

12

13

14

15

дані             A=

                  B=

1011011

-1001011

1010

-1111

1011101

-1001010

10100

-10111

-1011011

1011010

Варіант

16

17

18

19

20

дані            A =

                 B=

1011

-1101

1001

-1010

-10101

10011

101010

-101101

-1011001

1011010


Варіант

21

22

23

24

25

дані           A=

                B=

-1010

1111

-1011101

1001010

10110111

-1011010

-1011

1010

-1011

1101

Варіант

26

27

28

29

30

дані           A=

                B=

100101

-101110

-10100

10111

1011011

-1010001

-1010001

1011111

-10101

10001

Завдання 5. Скориставшись доповнювальними кодами чисел, розрахувати R=A-B (n=8), якщо:

Варіант

1

2

3

4

5

дані           A =

                B=

111101

101011

-100101

01010

-101001

-100111

11010101

10101010

1010101

1101010

Варіант

6

7

8

9

10

дані           A =

                B=

1011

1001

10101

1000

-100110

101100

11011

10011

101111

100011

Варіант

11

12

13

14

15

дані          A =

               B=

-101101

100101

-101100

100101

1010101

-1001011

1001

-1101

-100111

100110

Варіант

16

17

18

19

20

дані          A =

               B=

10111

-10101

101001

-101100

1111

1101

1011

-1000

-1001011

1010001

Варіант

21

22

23

24

25

дані          A =

               B=

1011101

1010100

-101010

101111

-1001110

-1010001

1001010

1000110

11111

101100

Варіант

26

27

28

29

30

дані          A =

               B=

110001

101111

1010

1111

100110

-101101

-11011

10011

-1011111

1000111

PAGE  6




1. Приз Снегурочки Время проведения- 22 декабря 2013 г
2. тема вивчення іменника
3. Язык программирования Норма
4. Методические рекомендации для самостоятельной работы студентов Специальность 250109 Садовопарковое и ла
5. Народний демократ ТГ Шевченко Кирило-Мефодіївське товариство
6.  Системы удаления стружки
7. В то время в России разводы общество не принимало и несчастные женщины вынужденные подчиняться устою тихо
8. 1991 года гр проживающую в нашем доме в кВ
9. Тюменская государственная медицинская академия Федерального агентства по здравоохранению и социальному
10. ~аза~стан Республикасыны~ е~бек туралы За~ына1