我想使用尽可能少的内存创建一个矩阵表示图算法。因此,我决定尝试使用矩阵值的位表示,但我也知道在C中这样做是不可能的,因为位不能被寻址。然后我在这里看到一篇帖子建议使用结构体来帮助我通过使用例如int(4字节,因此32位)和一些魔术和位移将其用作位“数组”。
我明白了,但我真的无法意识到我应该如何做到这一点。我感到困惑......
我考虑使用一个结构来存储与分配给'n'个位的最少字节数相对应的n个字节的int / void指针以及在该表示中的'k'个位数,例如这样。
因此,我认为您可以帮助我实现这种解决方案的最佳方法。
注意:为什么我如此困惑?我仍在攻读计算机科学学位,我刚开始学习图形。还刚刚完成了关于这个的实验室项目(将它实现为矩阵,但使用了一些数学技巧来仅分配矩阵的一半并将其表示为对称),但我正在尝试扩展这个问题。也因为我非常好奇:)
谢谢大家。
P.S .:几乎忘了,我在C中编程,但我可以非常好地理解C ++,.Net语言和Java。再次感谢。
&
运算符的限制(即您不能执行a.b & c
,其中a.b
是一个位域),但我认为这并不意味着您不能创建一个a
的数组。 - icyrock.com