Если хранить число без знака, то - в 1 байт помещаются числа от 0 до 255 (2⁸-1) - в 2 байта помещаются числа от 0 до 65 535 (2¹⁶-1) - в 3 байта помещаются числа от 0 до 16 777 215 (2²⁴-1) - в 4 байта помещаются числа от 0 до 4 294 967 296 (2³²-1) Задано число 33 554 433 и для его размещения потребуется 4 байта.
Можно, конечно, этим всем не заниматься, если есть возможность вычислять логарифмы. В данном случае логарифм по основанию 2, округленный в большую сторону до целых, даст необходимое для представления числа количество битов. ㏒₂33554433 = ㏑33554433/㏑2 ≈ 25.00000004 ⇒ 26 бит требуется Переводим в байты: 26/8 = 3.25 , т.е. потребуется 4 байта.
Заменим символы операций на более привычные (логическое сложение на сложение, логическое умножение - на умножение), но будем помнить, что все же это не арифметика, хотя и тут умножение "старше" сложения и выполняется первым. x=19+17*13+22*14 1) 17₁₀*13₁₀ 17₁₀ = 10001₂; 13₁₀=01101₂ Правила умножения поразрядно: 1*1=1, иначе 0 10001 *01101
00001 = 1₂ 2) 19₁₀+1₂ 19₁₀=10011₂ Правила сложения поразрядно: 0+0=0, иначе 1 10011 +00001
- в 1 байт помещаются числа от 0 до 255 (2⁸-1)
- в 2 байта помещаются числа от 0 до 65 535 (2¹⁶-1)
- в 3 байта помещаются числа от 0 до 16 777 215 (2²⁴-1)
- в 4 байта помещаются числа от 0 до 4 294 967 296 (2³²-1)
Задано число 33 554 433 и для его размещения потребуется 4 байта.
Можно, конечно, этим всем не заниматься, если есть возможность вычислять логарифмы. В данном случае логарифм по основанию 2, округленный в большую сторону до целых, даст необходимое для представления числа количество битов.
㏒₂33554433 = ㏑33554433/㏑2 ≈ 25.00000004 ⇒ 26 бит требуется
Переводим в байты: 26/8 = 3.25 , т.е. потребуется 4 байта.