2012-01-29 2 views
0

мне нужно вычислить битовую маску для N числа IP-адресов .. Я знаю, что из памяти, что:PHP - Вычисление битовой маски от суммы

32 = 1 IP 
31 = 2 IP 
30 = 4 IP 
29 = 8 IP 

и так далее ..

Если я потребовать 8 Ip, что равно POW (2, 3) = 8; Я, однако, начинаю с 8 и должен работать в обратном направлении.

Что было бы лучшим способом рассчитать это на PHP?

Заранее спасибо ..

ответ

3
$bitsrequired = ceil(log($number_of_ips)/log(2)); 
+0

Hm, или короче, 'CEIL (журнал ($ число, 2))', или я неправ? – Wrikken

+0

Выходит то же самое, мне просто нравится писать раздел явно. –

+0

Aight, моя математика немного ржавая (обратите внимание на себя: поднимитесь вверх ...), поэтому я действительно задавался вопросом;) Хорошо повторять, что эти 2 равны. – Wrikken

Смежные вопросы