Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Системы счисления.doc
Скачиваний:
13
Добавлен:
05.06.2015
Размер:
524.8 Кб
Скачать

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

Пример 1.8. Преобразование шестнадцатеричного числа 2C6F в десятичное (согласно формуле 1.1).

Значениями позиций первых четырех шестнадцатеричных цифр являются соответственно слева направо 4096 (163), 256 (162), 16 (161), 1 (160). Десятичное число содержит 15 (F16) единиц, 6 чисел 16, 12 (С16) чисел 256 (162) и 2 числа 4096 (163). Каждая цифра умножается на соответствующий ей вес, получается сумма, которая и дает десятичное число 11375.

Пример 1.9. Преобразование десятичного числа 15799 в шестнадцатеричное.

15799(10) / 16 = 987 15799 % 16 = 710 = 716 16 0

987 / 16 = 61 987 % 16 = 1110 = B16 16 1

61 / 16 = 3 61 % 16 = 1310 = D16 16 2

3 / 16 = 0 3 % 16 = 310 = 316 16 3

1579910 = 3DB716

Пример 1.10. Запишем восьмеричное число 2357 в десятичной форме.

Веса первых восьмеричных позиций равны 512 (83), 64 (82), 8 (81) и 1 (80). В предлагаемом числе содержится 7 единиц, 5 восьмерок, 4 числа 64 (82) и два числа 521 (83). Для получения результата сложим: 2*521 + 4*64 + 5*8 + 7 = 1263 (в десятичном представлении).

Пример 1.11. Преобразуем десятичное число 2145 в его восьмеричный эквивалент.

2145 / 8 = 268 2145 % 8 = 110 = 18 80

268 / 8 = 33 268 % 8 = 410 = 48 81

33 / 8 = 4 33 % 8 = 110 = 18 82

4 / 8 = 0 4 % 8 = 410 = 48 83

214510 = 41418

Операции над двоичными числами и поразрядные операции.

К логическим операциям относятся:

&& - логическое "И";

|| - логическое "ИЛИ";

! - логическое отрицание.

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

Пример 1.12. Пусть нужно подтвердить или опровергнуть принадлежность точек заштрихованной области:

bool b;

b = y < exp(x) && y > 0 && x > 2 && x < 5

bool b;

b = (y < exp(x) && y > 0 && x > 0 && x<2) || (x < 0 && x > -2 && y < 0 && y > -2)

Свойства логических операций представлены в таблице 1.2.

Таблица 1.2.

V1

V2

!V2

V1&&V2

V1||V2

false

false

true

false

false

false

true

false

false

true

true

false

false

true

true

true

true

true

Поразрядные операции или операции с разрядами (битами) нельзя применять к переменным типа float и double. К таким операциям относятся:

& - поразрядное "И";

| - поразрядное "ИЛИ";

~ - поразрядная инверсия;

^ - поразрядное "исключающее ИЛИ";

<< - сдвиг влево;

>> - сдвиг вправо.

Поразрядные операции выполняются в соответствии с таблицами истинности (табл.1.3), причем каждый разряд рассматривается независимо от других разрядов.

Таблица 1.3.

x

y

~ y

x & y

x | y

x ^ y

0

0

1

0

0

0

0

1

0

0

1

1

1

0

0

1

1

1

1

1

1

0

Пример 1.13. Обычное (+) и поразрядное (OR) двоичное сложение.

0111001110011010 0111001110011010

+ OR

1100111100100110 1100111100100110

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

10100001011000000 1111111110111110

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

Пример 1.14. Сдвиги разрядов.

Сдвиг на один бит влево приводит к умножению на 2, на один бит вправо - к целочисленному делению на 2:

00000100 4 (десятичное)

00001000 8 = 4 x 2

00000010 2 = 4 / 2

Пример 1.15. Сменить биты 16-разрядного машинного слова на обратные

1000110001110011

XOR

1111111111111111

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

0111001110001100

Иногда возникает необходимость анализировать или преобразовывать не все биты слова, а лишь некоторые. Тогда задают маску - слово в котором выделены нужные разряды. Установка битов по маске осуществляется поразрядным сложением (OR), сброс битов по маске - поразрядным умножением (AND).

Пример 1.16. Установить по маске биты в 16-разрядном машинном слове

1001110101110011

OR

1100110011001100 - маска

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

1101110111111111

Пример 1.17. Сбросить по маске биты в 16-разрядном машинном слове

1110000111101101

AND

1110001110001110 - маска

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

1110000110001100

Пример 1.18. Проверить наличие 0, 3, 5 битов в 16-разрядном слове

1000110011001100

AND

0000000000101001

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

0000000000001000

Отрицательные двоичные числа

Представление абсолютной величиной со знаком.

При этом способе крайний левый бит является знаковым битом числа:

0 означает +, а 1 - -. Остальные биты содержат абсолютную величину числа.

0000000000000110 +6

1000000000000110 -6 в представлении числа со знаком.

Представление числа в обратном коде.

Также присутствует знаковый бит: 0 обозначает +

1 - -

0000000000000101 – 5

1111111111111010 - -5 в обратном коде, т.к. здесь для того, чтобы сделать число отрицательным, каждая 1 заменяется на 0 и каждый 0 заменяется на 1. Это правило справедливо также для знакового бита.

Чаще, чем два описанных способа, применяется представление числа в дополнительном коде

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

Присутствует знаковый бит: 0 обозначает +

1 - -.

Чтобы найти двоичное представление отрицательного числа (т.е. его дополнительный код), надо взять его положительную форму, обратить каждый бит (т.е. заменить 1 на 0, а 0 на 1), а затем добавить к полученному результату 1.

0000000000000100 + 4

1111111111111011 - 4 в обратном коде

  1. прибавляем 1

________________

1111111111111100 - 4 в дополнительном коде

Задания для самостоятельной работы.

1 задание. Вычислить результат предложенной операции.

1

1010101010101010

AND

1100111000111100

2

1110011000001101

OR

0001100011000110

3

1100011011

+

101

4

1111000110

-

1

5

1111100000111110

XOR

1100110011001100

6

NOT 1100001001100110

7

1111111100000000

XOR

0000111100001111

8

1011100111001011

AND

1011111000111010

9

1010101010101010

AND

1110111000110100

10

1110011000001101

OR

0001100011000110

11

1100011011

+

101

12

1111000110

-

1

13

1111100000111110

XOR

1100110011001100

14

NOT 1100001001100110

15

1111111100000000

XOR

0000111100001111

16

1011100111001011

AND

1011111000111010

17

1010101010101010

AND

1100111000111100

18

1110011000001101

OR

0001100011000110

19

1100011011

+

101

20

1111000110

-

1

21

NOT 1100001001100110

22

1111111100000000

XOR

0000111100001111

23

1011100111001011

AND

1011111000111010

24

1100110000110011

XOR

0000111100001111

25

1011100111001011

AND

1010111000101010

26

1110011010001101

OR

0001100011010110

27

1100011001

+

1101

28

1111000110

-

11

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]