Как лучше всего реализовать матрицу битов? - PullRequest
1 голос
/ 12 мая 2011

Мне нужна матрица, которая содержит только 1 или 0 для каждого элемента.Какой самый дешевый способ сделать это в отношении использования памяти и процессора?

Моим текущим направлением является массив массивов с каждым элементом как int (слабо типизированный).Поскольку каждый тип int равен 32 или 64 битам, в зависимости от платформы, у меня есть 32/64 подэлемента на элемент.Есть ли решение, которое уже существует, чтобы мне не пришлось изобретать велосипед?

Ответы [ 2 ]

0 голосов
/ 12 мая 2011

nxm Битовая маска описывается как массив int

// setting bit in $ix$j 
$array[$i] = $array[$i] |  pow(2,$j);
// unsetting bit in $ix$j 
$array[$i] = $array[$i] & ~ pow(2,$j);
// test, if bit in $ix$j is set
$array[$i] & pow(2,$j);

Это не проверено;)

это то, что вы ищете?

В качестве бонуса это очень просточтобы инициализировать его

$array = array_fill(0, $n, 0);
0 голосов
/ 12 мая 2011

Я не понимаю ...

Это php - просто как пирог ...

$mat=array();
for ($i=0; $i<10;$i++)
{ 
  $mat[$i]=array();

  for($j=0;$j<10;$j++)
    $mat[$i][$j]=False;
}

Да, и используйте логическое значение - намного дешевле

...