如何将结构装入 int64 中?
我需要将以下结构放入 int64 中。
day 9 bit (0 to 372)
year 8 bit (2266-2010 = 256 y)
seconds 17 bit (24*60*60=86400 s)
hostname 12 bit (2^12=4096)
random 18 bit (2^18=262144)
如何使这样的结构适合 int64? 所有项目都是数字,并且具有指定的位大小
I need to fit the following structure into int64.
day 9 bit (0 to 372)
year 8 bit (2266-2010 = 256 y)
seconds 17 bit (24*60*60=86400 s)
hostname 12 bit (2^12=4096)
random 18 bit (2^18=262144)
How do I make such a structure fit in an int64?
All items are numberic, and of the specified bit size
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
只需按位或将组件加上适当的移位即可。
通过移动和组合来取出东西。
Just bitwise-or the components together with appropriate shifts.
Get things out by shifting and and-ing them.
通常,您会声明一个包含一个 int64 字段和多个仅访问该字段的相关位的属性的结构。
所以就像:
Typically you'd declare a structure with one int64 field, and multiple properties which access just the relevant bits of that field.
So like:
您标记了 C++ 和 C#,这两个选项非常不同。
在 C++ 中,您可以使用 位字段 :
在 C# 中,您必须自己进行位移,就像其他答案一样。
You tagged this C++ and C#, very different options for those two.
In C++ you can use bit-fields:
In C# you will have to bit-shift yourself, as in the other answers.