diff options
Create README.md
1 files changed, 79 insertions, 0 deletions
| -rw-r--r-- | Sem. 07/README.md | 79 |
diff --git a/Sem. 07/README.md b/Sem. 07/README.md new file mode 100644 index 0000000..f306723 --- /dev/null +++ b/Sem. 07/README.md @@ -0,0 +1,79 @@ + +# Бройни системи и побитови операции + +```markdown +| Десетична (decimal) | Двоична (binary) | осмична (octal) | Шестнайсетична (hexadecimal) | | +|---------------------|------------------|-----------------|------------------------------|-------| +| 00 | 00000 | 00 | 00 | 00001 | +| 01 | 00001 | 01 | 01 | 00011 | +| 02 | 00010 | 02 | 02 | 00111 | +| 03 | 00011 | 03 | 03 | 11111 | +| 04 | 00100 | 04 | 04 | ... | +| 05 | 00101 | 05 | 05 | | +| 06 | 00110 | 06 | 06 | | +| 07 | 00111 | 07 | 07 | | +| 08 | 01000 | 10 | 08 | | +| 09 | 01001 | 11 | 09 | | +| 10 | 01010 | 12 | 0A | | +| 11 | 01011 | 13 | 0B | | +| 12 | 01100 | 14 | 0C | | +| 13 | 01101 | 15 | 0D | | +``` +#### Преобразуване между бройни системи + + - Алгоритъм за преобразуване от произволна бройна система в дестична бройна система + - Алгоритъм за преобразуване от десетчина бройна система в произволна бройна система + +#### Представяния на отрицателни числа + + - One's complement (5) [101] -(flip)-> [010] (-5) + - Two's complement (5) [101] -(flip)-> [010] + [001] = [011] (-5) + +#### Побитови операции +прилагат върху един бит или набор от повече отделни битове на двоични числа + + - Побитово И (**&**) + - Побитово ИЛИ (**|**) + - Побитово ИЗКЛЮЧВАЩО ИЛИ (**^**) + - Побитово отместване (**<<** ) ( **>>**) + +```markdown +| a | 101010100 | +| b | 100101110 | +| a&b | 100000100 | +| a\|b | 101111110 | +| a^b | 000000100 | +| a << 2 | 101010000 | +| a >> 2 | 001010101 | +``` + +**Задача 1:** Напишете функция, която приема число от в произволна бройна система и преобразува **директно** (без да минава през десетична) числото в друга произволна бройна система. + +**Задача 2** Да се напише функция, която приема масив, в който всяко число се среща 2 пъти с изключение на едно число, което се среща веднъж. +Напишете функция, която приема такъв масив и връща кое е това число. +(Подсказка: използвайте побитови операции, за да постигнете линейно решение) + +*Вход: [9 18 9 12 18 15 12], Изход: 15* + + +**Задача 3** Напишете функция, която приема цяло число и връща броя на 1-ците в двоичния му запис. + +*Вход: 189, Изход: 6* + +**Задача 4 :** Напишете функция, която приема цяло число и обръща най-десният бит в него, който е единица. + +*Вход: 12, Изход: 8* + +*Вход: 15, Изход: 14* + +**Задача 5:** Напишете функция, която по подадено цяло число n и цяло число k и връща числото, което е "закодирано" в последните k бита на n. + +*Вход: 15 2, Изход: 3* +*Вход: 189 3, Изход: 5* +*Вход: 189 4, Изход: 13* + +**Задача 6:** Напишете функция, която приема цяло число n и цяло число k и връща дали k в двоичен запис е част от двоичния запис на n. + +*Вход: 15 3, Изход: true* +*Вход: 13 5 Изход: true* +*Вход: 13 7, Изход: false* |
