Вы ищете логарифм, в частности, логарифм с основанием два. Логарифмы противоположны возведению в степень, поэтому если b x = y, то x = log b y. 2 4 = 16, поэтому log 2 16 = 4.
Во-первых, вам нужно выяснить, сколько у вас байтов. Если ваш номер в килобайтах, умножьте на 2 10. Для мегабайт 2 20, для гигабайт 2 30 и так далее. Как видите, я использую определения степеней 1024 этих единиц, а не определения степеней 1000, поэтому один килобайт здесь составляет 1024 байта. Однозначное имя для 1024 байта - кибибайт. В любом случае, 512 МБ равно 512 • 2 20 = 536870912 байт.
Теперь вам понадобится научный калькулятор. Мне нравится Wolfram Alpha, которая позволяет вам делать логарифмы с двумя основными значениями с помощью функции log2
. log2(536870912)
выдает 29, что имеет смысл, учитывая, что 512 МБ - это половина от 1 ГБ, поэтому требуется на одну мощность меньше двух. Вы можете использовать практически любой оператор, который можно себе представить в выражении Wolfram Alpha, поэтому log2(512 * 10^20)
тоже работает .
Если вы получите число с десятичной частью, округлите вверх. Например, вам потребуется три бита для адресации пяти байтов оперативной памяти, хотя log2(5)
составляет примерно 2,32.