ФорумПрограммированиеPHP для идиотовPHP и ООП → Узнать число битов в числе

Узнать число битов в числе

  • arvitaly

    Сообщения: 292 Репутация: N Группа: Адекваты
  • ivanscm

    Сообщения: 1251 Репутация: N Группа: Джедаи

    Spritz 26 октября 2011 г. 5:18, спустя 45 минут 31 секунду

    Ответ
    С возвращением, Пiха!
  • mario

    Сообщения: 6067 Репутация: N Группа: Джедаи

    Spritz 26 октября 2011 г. 5:23, спустя 4 минуты 7 секунд

    первое что пришло в голову substr_count(base_convert($numeric, 10, 2), '1');
  • Frozzeg

    Сообщения: 5641 Репутация: N Группа: Джедаи

    Spritz 26 октября 2011 г. 5:29, спустя 6 минут 44 секунды

    You can be anything you want to be. Just turn yourself into anything you think that you could ever be.
  • Nyaah

    Сообщения: 574 Репутация: N Группа: Джедаи

    Spritz 26 октября 2011 г. 13:13, спустя 7 часов 43 минуты 48 секунд

    тебе число ведущих битов?

    для целого числа:
    $a = 100;
    $count = 0;
    while ($a != 0) {
    $count++;
    $a >>= 1;
    }
    echo $count;

    можно без $count свичем по 0x1 0x2 0x4 0x8 0x01 …. но это если зарание известен максимальной размер числа. Для флота - распаковываешь его в инт/массив интов, если он больше 4 байт. А вообще в php работать на уровне битов то ещё приключение
    Спустя 78 сек.
    кстате, причём тут ооп? =)
    Work, buy, consume, die
  • technobulka

    Сообщения: 4540 Репутация: N Группа: Джедаи

    Spritz 26 октября 2011 г. 13:27, спустя 14 минут 16 секунд

    может ему надо типы данных?
    bigint - 8 байт
    int - 4 байта
    etc.
    Высокоуровневое абстрактное говно
  • arvitaly

    Сообщения: 292 Репутация: N Группа: Адекваты

    Spritz 26 октября 2011 г. 20:53, спустя 7 часов 25 минут 13 секунд

    ООП уж всегда причем
  • arvitaly

    Сообщения: 292 Репутация: N Группа: Адекваты

    Spritz 26 октября 2011 г. 21:10, спустя 17 минут 31 секунду


    На самом деле задача разложить число на степень двойки
        $number = 159;

    $pows = array();

    do
    {
    $number = $number - pow(2, ( $pows[] = floor( log($number, 2)) ) );

    }while ($number > 0);

    print_r($pows);


    вот тут хотел заменить log на чо нить более быстрое
  • phpdude

    Сообщения: 26624 Репутация: N Группа: в ухо

    Spritz 26 октября 2011 г. 21:24, спустя 13 минут 54 секунды

    php.net/decbin
    Сапожник без сапог
  • master

    Сообщения: 3236 Репутация: N Группа: Джедаи

    Spritz 27 октября 2011 г. 1:52, спустя 4 часа 27 минут 52 секунды

    Ответ

    +1
    не всё полезно, что в swap полезло
  • komprenda

    Сообщения: 24 Репутация: N Группа: Кто попало

    Spritz 15 мая 2012 г. 1:36, спустя 200 дней 23 часа 44 минуты


    может ему надо типы данных?
    bigint - 8 байт
    int - 4 байта
    etc.


    В пыхе любят триллионы складывать ггг

Пожалуйста, авторизуйтесь, чтобы написать комментарий!