首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >整数数组的比特打包

整数数组的比特打包
EN

Stack Overflow用户
提问于 2010-03-08 03:44:41
回答 7查看 15K关注 0票数 11

我有一个整数数组,让我们假设它们的类型是int64_t。现在,我知道只有每个整数的前n位是有意义的(也就是说,我知道它们受到一些界限的限制)。

在删除所有不必要的空格的情况下,转换数组的最有效方法是什么(例如,第一个整数位于a[0],第二个整数位于a[0] + n bits,依此类推)?

我希望它尽可能通用,因为n会随时间而变化,尽管我猜可能会有针对特定n的智能优化,比如2的幂或某物的幂。

当然我知道我可以在值上迭代值,我只想问你,StackOverflowers,你能不能想出更聪明的方法。

编辑:

这个问题不是关于压缩数组以占用尽可能少的空间。我只需要从每个整数中“剪切”n bits,并给出数组,我就知道可以安全地剪切的确切n位。

EN

Stack Overflow用户

发布于 2010-03-08 03:57:16

我知道这看起来似乎是显而易见的事情,因为我确信实际上有一个解决方案,但是为什么不使用更小的类型,比如uint8_t (最大255)?或者uint16_t (最大65535)?我确信您可以使用定义的值和或操作等对int64_t进行位操作,但是,除了学术练习之外,为什么呢?

在学术练习的笔记上,Bit Twiddling Hacks是一个很好的读物。

票数 2
EN
查看全部 7 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2397655

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档