Разбор целого цисла по битам

Devillio

Новичок
Разбор целого цисла по битам

Доброго вам времени суток, форумчане.

Помогите написать функцию (а еще лучше, просто направьте, куда копать), чтобы в PHP разложить целое число на биты (чтобы узнать, какие 1, а какие - 0). Написать подобное в принципе можно, но может, есть что-то готовое, как например в Delphi function IntToBin(Value: cardinal): string;

Спасибо.
 

Devillio

Новичок
Что то я сам себе противоречу... то "помогите написать"... то "написать можно, помогите найти готовое...". Надеюсь вы меня поймете :)

-~{}~ 23.09.05 09:13:

MD
спасибо.
 

SiMM

Новичок
> тобы в PHP разложить целое число на биты (чтобы узнать, какие 1, а какие - 0)
А зачем, если можно работать с битами и так?
[m]language.operators.bitwise[/m]
 

whirlwind

TDD infected, paranoid
PHP:
$v = 123465457;
for ($i = 0; $i < 32; $i ++){
         print "$i bit = ".($v & 1 ? 1 : 0)."<br>";
//	print "$i bit = ".($v % 2 ? 1 : 0)."<br>";
	$v = $v >> 1;
}
или
PHP:
printf("%b",$v);
в зависимости от типа назначения
 

Devillio

Новичок
круто. whirlwind, спасибо.
как понять конструкцию ($v & 1 ? 1 : 0)... щас буду раскладывать по частям...
 

whirlwind

TDD infected, paranoid
сокращенная проверка первого бита
PHP:
if ( $v & 1 ){
    print 1;
}else{
    print 0;
}
 
Сверху