public static function extractToArray($value, $start_bit, $end_bit) { $result = array(); if ($start_bit > $end_bit) { return $result; } for ($i = $start_bit; $i <= $end_bit; $i++) { if (bitManipulation::is_set($value, $i)) { $result[] = $i; } } return $result; }
<?php /* * an explame */ require_once 'bit-oper.php'; $data = array(1, 2, 3, 4, 5); $en = bitManipulation::setFromBitArray(0, $data); //var_dump($en); //检查指定值是否在编码结果中 $is = bitManipulation::is_set($en, 9); //var_dump($is); //解码一组值 $de = bitManipulation::extractToArray($en, 0, 64); //var_dump($de); //从编码结果中移除指定位 $del = bitManipulation::un_set($en, 3); //var_dump($del); //解码一组值 $de = bitManipulation::extractToArray($del, 0, 64); //var_dump($de);