diff options
| author | Syndamia <kamen@syndamia.com> | 2023-10-19 19:40:08 +0300 |
|---|---|---|
| committer | Syndamia <kamen@syndamia.com> | 2023-10-19 19:40:08 +0300 |
| commit | fbbe586d25b1ebaf66fe2e92e1986bb5debf961d (patch) | |
| tree | 58f288b71fd5d1e046158b442438ea282285a619 /week02/exercise03.cpp | |
| parent | a597f37a109398549d8ab098a2d6de19a4a1b4b8 (diff) | |
| download | upp-2023-solutions-fbbe586d25b1ebaf66fe2e92e1986bb5debf961d.tar upp-2023-solutions-fbbe586d25b1ebaf66fe2e92e1986bb5debf961d.tar.gz upp-2023-solutions-fbbe586d25b1ebaf66fe2e92e1986bb5debf961d.zip | |
[w2] Added solutions
Diffstat (limited to 'week02/exercise03.cpp')
| -rw-r--r-- | week02/exercise03.cpp | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/week02/exercise03.cpp b/week02/exercise03.cpp new file mode 100644 index 0000000..009cf71 --- /dev/null +++ b/week02/exercise03.cpp @@ -0,0 +1,15 @@ +#include <iostream> + +int main() { + unsigned int a; + std::cin >> a; + // Отместването на дясно с всяка единица дели числото на 2, докато отместването на ляво умножава по 2 + // Нарочно 16 и 8 са степени на двойката + // + // Защо това се получава, еми, всеки бит се съпоставя с 2 на някаква степен, когато превръщаме в десетичен запис + // Примерно, да погледнем 101, десетично това е 1 * 2^2 + 0 * 2^1 + 1 * 2^0 + // Нека да разделим това уравнение на 2, това е 0 * 2^2 + 1 * 2^1 + 0 * 2^0 + // Нека сега да умоножим оригиналното по 2, 1 * 2^3 + 0 * 2^2 + 1 * 2^1 + 0 * 2^0 + // Сравнително очевидно се вижда, че деление и умножение на 2 измества битвоете надясно и наляво + std::cout << (a >> 4) << ' ' << (a << 3) << std::endl; +} |
