Вы ищете логарифм , в частности, логарифм с основанием два. Логарифмы противоположны возведению в степень, поэтому если 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.