Операции с битами на php как реализовать

load48

Новичок
Подскажите, как описать данную операцию. Спасибо.

данные Hex: 0х0040 7B9E (получаем Dec: 4225950), убираем 6 и 7 бит из старшего регистра
0х0040 7B9E AND 0x003F FFFF = 0x0000 7B9E = Dec: 31646
 

load48

Новичок
64 данные из одного регистра
31646 из второго

$a = "0x".dechex(64).dechex(31646);

###a = 0x407b9e;

Как перевести данное значение в формат который необходим для восприятия его "AND"?

$b = 0x003FFFFF;

$c = $a & $b;

При отработке я получаю: A non well formed numeric value encountered
 

load48

Новичок
function convs($f, $f1) {

$a = "0x".dechex($f1).dechex($f);
$a = intval($a,16);
$b = 0x003FFFFF;
$c = $a & $b;

return $c;

}


echo convs(60649,2);
 

ksnk

прохожий
число - оно и в php число. А представление его может быть разное - десятичное, шестнадцатеричное, прописью... Битовые и арифметические операции выполняются над числами.
Код:
//64 данные из одного регистра
$one=64;
//31646 из второго
$two=31646;

$data = ($one<<16) + $two;
$data = $data & 0x3fffff;

echo dechex($data);
 
Сверху