如何最好地实现位矩阵?

发布于 2024-11-06 19:33:00 字数 169 浏览 1 评论 0原文

我需要一个每个元素仅包含 1 或 0 的矩阵。就内存和处理器使用而言,成本最低的方法是什么?

我当前的方向是数组的数组,每个元素都是 int(弱类型)。因为每个 int 都是 32 位或 64 位,具体取决于平台,所以每个元素有 32/64 个子元素。是否有一个已经存在的解决方案,这样我就不必重新发明轮子?

I need a matrix that holds only 1 or 0 for each element. What is the least costly way to do this regarding memory and processor usage?

My current direction is an array of arrays with each element as an int(weakly typed). Because each int, is either 32 or 64 bits depending upon the platform, I have 32/64 sub elements per element. Is there a solution that already exists so that I don't have to reinvent the wheel?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

微凉 2024-11-13 19:33:00

nxm Bitmask 描述为 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);

nxm Bitmask describes as array of 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);

Its untested ;)

its something like that you are looking for?

As a bonus its very easy to initialize it

$array = array_fill(0, $n, 0);
白云不回头 2024-11-13 19:33:00

我不明白...

这是 php - 简单易行...

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

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

哦,使用布尔值 - 便宜得多

I don't get it...

This is php - easy as pie...

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

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

Oh, and use boolean - much cheaper

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文