Операции с целыми числами. 10 класс

Содержание

Слайд 2

Сложение и вычитание

0000 0101

1111 0111

+

1111 1100

-4 ←

Сложение и вычитание 0000 0101 1111 0111 + 1111 1100 -4 ←

Слайд 3

Переполнение

знаковый бит

дополнительный бит

00100001

01100000

+

010000001

96

33

-127

S’

S

0

0

1

0

11011111

10100000

+

101111111

-96

-33

127

S’

S

1

1

0

1

Переполнение знаковый бит дополнительный бит 00100001 01100000 + 010000001 96 33 -127

Слайд 4

Умножение

9
5

→45

00001001

×

00000101

00001001

00000000

00001001

0000101101

+

-9
5

→-45

11110111

×

00000101

11110111

00000000

11110111

10011010011

+

Умножение 9 5 →45 00001001 × 00000101 00001001 00000000 00001001 0000101101 +

Слайд 5

Поразрядные логические операции

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

Поразрядные логические операции Поразрядные операции выполняются с отдельными битами числа и не
на остальные.

регистр

Операция «НЕ» (инверсия, not):

R

not R

Слайд 6

Логическая операция «И» (and, &)

данные

маска

Маска – константа, которая определяет область применения логической

Логическая операция «И» (and, &) данные маска Маска – константа, которая определяет
операции к битам многоразрядного числа.

D

D and M

M

AA16

6С16

2816

AA16 and 6C16 = ?

Слайд 7

Логическая операция «ИЛИ» (or, |)

D

D or M

M

AA16

6С16

EE16

AA16 or

Логическая операция «ИЛИ» (or, |) D D or M M AA16 6С16
6C16 = ?

Слайд 8

Операция «исключающее ИЛИ» (xor, ^)

D

D xor M

M

AA16

6С16

C616

AA16 xor

Операция «исключающее ИЛИ» (xor, ^) D D xor M M AA16 6С16
6C16 = ?

Слайд 9

Битовые логические операции (итог)

R

1) отключить лампочки 2 и 1, не трогая

Битовые логические операции (итог) R 1) отключить лампочки 2 и 1, не
остальные

R = R and F916

2) включить лампочки 7 и 4

R = R or 9016

3) изменить состояние лампочек 5, 4 и 2

R = R xor 3416

Слайд 10

Шифрование с помощью xor

Идея: (A xor B) xor B =

A

Текст: 2*2=4

Коды символов:

Шифрование с помощью xor Идея: (A xor B) xor B = A

'2' = 3216 = 001100102
'*' = 2A16 = 001010102
'=' = 3D16 = 001111012
'4' = 3416 = 001101002

Слайд 11

Шифрование с помощью xor

Исходный текст: 2*2=4

'2' → 3216 xor 1716 =
'*' →

Шифрование с помощью xor Исходный текст: 2*2=4 '2' → 3216 xor 1716
2A16 xor 1716 =
'=' → 3D16 xor 1716 =
'4' → 3416 xor 1716 =

2516 → '%'
3D16 → '='
2A16 → '*'
2316 → '#'

Маска: 23 = 1716 = 000101112

Зашифрованный текст: %=%*#

Расшифровка:

'%' → 2516 xor 1716 =
'=' → 3D16 xor 1716 =
'*' → 2A16 xor 1716 =
'#' → 2316 xor 1716 =

3216 → '2'
2A16 → '*'
3D16 → '='
3416 → '4'

Слайд 12

Логический сдвиг

Влево:

бит переноса

С

Вправо:

С

С, C++, Python :

Паскаль:

N = N << 1;
N = N

Логический сдвиг Влево: бит переноса С Вправо: С С, C++, Python :
>> 1;

N := N shl 1;
N := N shr 1;

shift left

shift right

Слайд 13

Логический сдвиг

Влево:

12

24

Вправо:

12

6

Логический сдвиг влево (вправо) – это быстрый способ умножения (деления без

Логический сдвиг Влево: 12 24 Вправо: 12 6 Логический сдвиг влево (вправо)
остатка) положительного числа на 2.

Слайд 14

Арифметический сдвиг (вправо)

–12

С

– 6

Примеры:

20

15

11

3

1

→ 10

→ 7

→ 5

→ 1

→ 0

–20

–15

–11

–3

–1

→ –10

→ –8

→ –6

Арифметический сдвиг (вправо) –12 С – 6 Примеры: 20 15 11 3
–2

→ –1

Арифметический сдвиг вправо – деление на 2 нацело с округлением «вниз» (к ближайшему меньшему целому).

Слайд 15

Циклический сдвиг

Влево:

Вправо:

Циклический сдвиг Влево: Вправо:

Слайд 16

Пример

Задача: в целой переменной N (32 бита) закодирована информация о цвете пикселя

Пример Задача: в целой переменной N (32 бита) закодирована информация о цвете
в RGB:
Записать в переменные R, G, B составляющие цвета.
Вариант 1:
Обнулить все биты, кроме G. Маска для выделения G: 0000FF0016
Сдвинуть вправо так, чтобы число G передвинулось в младший байт.

С, C++, Python:

G =(N & 0xFF00) >> 8;

Паскаль:

G:=(N and $FF00) shr 8;

Слайд 17

Пример
Вариант 2:
Сдвинуть вправо так, чтобы число G передвинулось в младший байт.
Обнулить все

Пример Вариант 2: Сдвинуть вправо так, чтобы число G передвинулось в младший
биты, кроме G. Маска для выделения G: 000000FF16

С, C++, Python:

G =(N >> 8) & 0xFF;

Паскаль:

G:=(N shr 8) and $FF;

Слайд 18

Пример

Си:

R =
B =

Паскаль:

R:=
B:=

Пример Си: R = B = Паскаль: R:= B:=

Слайд 19

Конец фильма

ПОЛЯКОВ Константин Юрьевич
д.т.н., учитель информатики
ГБОУ СОШ № 163, г. Санкт-Петербург
[email protected]
ЕРЕМИН

Конец фильма ПОЛЯКОВ Константин Юрьевич д.т.н., учитель информатики ГБОУ СОШ № 163,
Евгений Александрович
к.ф.-м.н., доцент кафедры мультимедийной дидактики и ИТО ПГГПУ, г. Пермь
[email protected]
Имя файла: Операции-с-целыми-числами.-10-класс.pptx
Количество просмотров: 63
Количество скачиваний: 1