1. Находим общее количество пикселей n = 1024×768 = 786432 2. Находим количество бит, необходимое для отображения цвета одного пикселя k=㏒₂64 = 6 (или просто вспоминаем, что 64=2⁶) 3. Определяем объем информации в битах I = n×k = 786432×6 = 4718592 бит 4. Переводим в более крупные единицы - в байты: 1 байт=8 бит; 4718592 бит/8 = 589824 байт - в Кбайты: 1 Кбайт=1024 байта; 589824 байт/1024 = 576 Кбайт - в Мбайты: 1 Мбайт=1024 Кбайта; 576 Кбайт/1024 = 0.5625 Мбайт.
Б. Решение "в степенях двойки"
1. Находим общее количество пикселей n = 1024×768 = 2¹⁰×2⁹×1.5 = 2¹⁹×1.5 2. Находим количество бит, необходимое для отображения цвета одного пикселя k=㏒₂64 = 6 (или просто вспоминаем, что 64=2⁶) 3. Определяем объем информации в битах I = n×k = 2¹⁹×1.5×6 = 2¹⁹×9 бит 4. Переводим в более крупные единицы - в байты: 1 байт=2³ бит; 2¹⁹×9 бит/2³ = 2¹⁶×9 байт - в Кбайты: 1 Кбайт=2¹⁰ байт; 2¹⁶×9 байт/2¹⁰ = 2⁶×9 Кбайт = 64×9 = 576 Кбайт - в Мбайты: 1 Мбайт=2¹⁰ Кбайт; 2⁶×9 Кбайт/2¹⁰ = 2⁻⁴×9 Мбайт = 9/16 Мбайт = 0.5625 Мбайт.
Если лень перебирать вручную, можно воспользоваться программой
var k,l,r,x,f:integer; begin f := 3001; l := 0; r := 65534; x := (l + r) div 2; k := 1; while (x <> f) and (l < r) do begin writeln(k,' ',l,' ',r,' ',x); k := k + 1; if f < x then r := x - 1 else l := x + 1; x := (l + r) div 2 end; writeln(k,' ',l,' ',r,' ',x); end.
Решение представлено во вложении.
Язык: Python