求助:关于位数组,请问位数组这种概念的东西在C语言中应该怎么使用啊?

提出问题 解决问题 2006-05-08 09:20:35
谁能给我讲讲位数组的知识啊?
我想节省计算机的空间,不想用字符数组,因为字符数组每一个元素要占8位的,我想搞一个超大的位数组,请问,位数组应该怎么实现啊?我想让位数组中的每个元素只占一个bit。

bit [10000000000]

struct bs
{
unsiged a1:1;
....
}bit;

是我上边所写的这种思路吗?然后呢?应该怎么写。
...全文
388 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
说说怎么用啊。
gmzhang 2006-05-12
  • 打赏
  • 举报
回复
用结构体
  • 打赏
  • 举报
回复
如果用结构体中的位域,我想声明一个大的位数组,应该怎么办呢?

我不想用那种与 或 非对整数操作的方式。

我的目的是想节省空间。
tb01412 2006-05-09
  • 打赏
  • 举报
回复
在现代的编程语言中,没有位变量,最小的变量类型是字节,当然,可以用结构体中的位域来表示,不过那个比较复杂,而且不好用,所以你得想一个折衷的办法,用字任数组或者整型数组,然后按位来操作就行了,换句话说,用一个整型数来表示32位,操作时用位移或者位与,位或等方式来取出每个位
YFY 2006-05-09
  • 打赏
  • 举报
回复
楼主,这样做在现在32位的CPU中运算会变得慢的,最好按CPU的位数为基准定义变量,
32位的CPU中定义4字节的最快了,64位的定义8字节了。

不知可否通过使用更大的存储介质来解决问题。
cunsh 2006-05-09
  • 打赏
  • 举报
回复
用 c++ 的 bitset
  • 打赏
  • 举报
回复
to: tikiet()
这样作也是不对的啊,每个数组元素还是占用了4个字节,就是b[0]就占用了4个字节。
tikiet 2006-05-09
  • 打赏
  • 举报
回复
你差了最后一步,就是把两个合在一起啊

struct bs
{
unsiged a1:1;
....
}bit [10000000000];

这样就行了吧
数组怎么用应该知道吧
  • 打赏
  • 举报
回复
请讲的清晰一些:

bit b[1000000000000000000];

b[0],b[1]......怎么做可以让他们中的每一个都只占一个bit啊?
DragonBill 2006-05-08
  • 打赏
  • 举报
回复
就用 unsign int来表示喽, 比如8就是1000,一个元素对一个bit

69,335

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧