school-255 / binary-arithmetic-AnastasiaMorozV

binary-arithmetic-AnastasiaMorozV created by GitHub Classroom

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Самостоятельная работа по двоичной арифметике

Для выполнения задания необходимо открыть этот файл в codespace и писать все заметки, решения и ответы прямо здесь. В каждом задании отведено место под заметки и ответ. Пример задания приведен ниже:

Пример задания

Вычислите x:

x = 12 + 95*2

место для заметок

95*2 = 190
12+190 = 202

Ответ:

x = 202

После выполнения работы не забудьте сохранить, зафиксировать (commit) и синхронизировать (push) изменения!


Задание 0

Записать свою дату рождения в формате dd-mm-yyyy и определить особые числа для своего варианта следующим образом:

N = ddmmyyyy

Например у меня (Ярмолинский А.М.) др 8 сен 2001, значит N = 08092001.

Ответ:

N = xxxxxxxx

Задание 1

Перевести число N в формат uint32_t (беззнаковое 32-битное целое число) и представить в шестнадцатеричном виде.

место для заметок

место для заметок

Ответ:

N = 0xXXXXXXXX

Задание 2

Вычислить:

NL = N << 3;
NR = N >> 2;

Считать NL и NR числами типа uint32_t.

Напоминание: << - логический сдвиг влево, >> - вправо

место для заметок

место для заметок

Ответ:

NL = 0xXXXXXXXX
NR = 0xXXXXXXXX

Задание 3

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

S = abcdefgh
    ||||||||
    |||||||` реле 0
    ||||||`- реле 1
    |||||`-- реле 2
    ||||`--- реле 3
    |||`---- реле 4
    ||`----- реле 5
    |`------ реле 6
    `------- реле 7

Нулевое значение бита соответствует разомкнутому реле (реле выключено), единица - реле замкнуто (включено).

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

S = S & Moff;    // выключить реле 1, 4 и 5, не трогая остальные
S = S | Mon;     // включить реле 2, 3, 6 и 7, не трогая остальные
S = S ^ Mtoggle; // переключить реле 0, 4 и 6, не трогая остальные

В ответе записать представление маски и в двоичном, и в шестнадцатеричном виде.

'&' - побитовое И, '|' - побитовое ИЛИ, '^' - побитовое ИСКЛЮЧАЮЩЕЕ ИЛИ

место для заметок

место для заметок

Ответ:

Moff    = 0bxxxxxxxx; // 0xXX
Mon     = 0bxxxxxxxx; // 0xXX
Mtoggle = 0bxxxxxxxx; // 0xXX

Задание 4

Используя ключ k = 0x18 зашифровать дату своего рождения, записанную в формате: 31-12-2023. Каждый символ считать закодированным по таблице ASCII.

В ответе написать строку из 10 символов, соответствующую зашифрованной дате.

место для заметок

место для заметок

Ответ:

xxxxxxxxxx

Задание 5

Представить число N в нормализованной форме в двоичной системе счисления.

Задание на сообразительность

Перевести число N в формат float (число с плавающей точкой единичной точности, 32 бита, стандарт IEEE 754) и представить в виде шестнадцатиричного числа (вида 0x89ABCDEF)

так число -17.25 будет представлено в виде:

-17.25 =
-10001.01 =
-1.000101 * 2^4 =>

1|1000001 1|0001010 00000000 00000000
| \       / \                       /
|  \     /   ` Мантисса ( Z-1 = .000101)
|   \   /
|    `-------- Экспонента ( p = 4 + 127 = 131 )
`- Знаковый бит

11000001 10001010 00000000 00000000
   C1       8A       00       00

-17.25 -> (float)C18A0000

место для заметок

место для заметок

Ответ:

Nnorm = xxxx * 2^xxx
Nfloat = (float)XXXXXXXX

About

binary-arithmetic-AnastasiaMorozV created by GitHub Classroom

License:GNU General Public License v3.0