Для выполнения задания необходимо открыть этот файл в codespace и писать все заметки, решения и ответы прямо здесь. В каждом задании отведено место под заметки и ответ. Пример задания приведен ниже:
Вычислите x
:
x = 12 + 95*2
место для заметок
95*2 = 190
12+190 = 202
Ответ:
x = 202
После выполнения работы не забудьте сохранить, зафиксировать (commit) и синхронизировать (push) изменения!
Записать свою дату рождения в формате dd-mm-yyyy
и определить особые числа для своего варианта следующим образом:
N = ddmmyyyy
Например у меня (Ярмолинский А.М.) др 8 сен 2001, значит N = 08092001
.
Ответ:
N = xxxxxxxx
Перевести число N
в формат uint32_t
(беззнаковое 32-битное целое число) и представить в шестнадцатеричном виде.
место для заметок
место для заметок
Ответ:
N = 0xXXXXXXXX
Вычислить:
NL = N << 3;
NR = N >> 2;
Считать NL
и NR
числами типа uint32_t
.
Напоминание:
<<
- логический сдвиг влево,>>
- вправо
место для заметок
место для заметок
Ответ:
NL = 0xXXXXXXXX
NR = 0xXXXXXXXX
Система управления умным домом состоит из контроллера и восьми реле. Для управления реле в контроллере есть переменная типа 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
Используя ключ k = 0x18
зашифровать дату своего рождения, записанную в формате: 31-12-2023
. Каждый символ считать закодированным по таблице ASCII.
В ответе написать строку из 10 символов, соответствующую зашифрованной дате.
место для заметок
место для заметок
Ответ:
xxxxxxxxxx
Представить число 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