Ну, вам просто нужно рассчитать диапазон для каждого случая и найти наименьшую степень 2, которая выше этого диапазона.
Например, в i), 3 десятичных знака -> 10 ^ 3= 1000 возможных чисел, поэтому вы должны найти наименьшую степень 2, превышающую 1000, которая в данном случае составляет 2 ^ 10 = 1024 (10 бит).
Редактировать: В основномвам нужно найти количество возможных чисел с количеством имеющихся у вас цифр, а затем выяснить, какое количество цифр (в другой базе, в данном случае в двоичной базе 2) имеет, по крайней мере, те же возможные числа, что и в десятичной.
Чтобы рассчитать количество возможностей с учетом количества цифр: possibilities=base^ndigits
Итак, если у вас 3 десятичных знака (основание 10), у вас есть 10^3=1000
возможностей.Затем вы должны найти количество цифр в двоичном виде (биты, основание 2), чтобы число возможностей было не менее 1000, что в данном случае равно 2^10=1024
(9 цифр недостаточно, поскольку 2^9=512
, что меньшечем 1000).
Если вы обобщите это, у вас есть: 2^nbits=possibilities <=> nbits=log2(possibilities)
Что применимо к i) дает: log2(1000)=9.97
, и так как число битов должно быть целым числом, выдолжны округлить его до 10.