Website Summary Files Commits Branches @commit @diff @stats
path: root / Sem. 07
diff options
context:
space:
mode:
Commitebfdded080653e2c007b23f6d086a26bc59b2801 (patch)
Author
 Angel Dimitriev <achi_d@abv.bg>
2021-11-17 18:41:54 +0200
Committer
 GitHub <noreply@github.com>
2021-11-17 18:41:54 +0200
Files69dcc21c4202421d3943d87c3ac7d92084343870 /Sem. 07
Introduction_to_programming_FMI-ebfdded080653e2c007b23f6d086a26bc59b2801.tar
Introduction_to_programming_FMI-ebfdded080653e2c007b23f6d086a26bc59b2801.tar.gz
Introduction_to_programming_FMI-ebfdded080653e2c007b23f6d086a26bc59b2801.zip
Parentfc2f279a9344c31232275103c485d5c6335635ea (diff)
Create README.md
1 files changed, 79 insertions, 0 deletions
-rw-r--r--Sem. 07/README.md79
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*