c++ - 奇怪的数据类型 - C++
问题描述
我知道这听起来像一个愚蠢的问题,但我想知道是否有可能以任何方式制作这样的自定义变量大小,而不是使用普通的 8、16、32 和 64 位整数:
uint15_t var; //as an example
我在网上做了一些研究,但没有发现适用于所有尺寸的东西(只有12 位和 24 位之类的东西)。(我还想知道位域是否也适用于其他数据大小)。
是的,我知道您可以使用 16 位整数来存储 15 位值,但我只是想知道是否有可能做这样的事情。
如何制作和实现自定义整数大小?
解决方案
在结构或类中,可以使用位域功能为成员变量声明所需大小的整数:
unsigned int var : 15;
...它的 CPU 效率不是很高(因为编译器必须在对该变量的大多数访问上生成按位操作),但它会给您提供所需的 15 位行为。
推荐阅读
- c - 枚举周围的方括号是什么意思?[枚举值]
- docker - 在 Kubernetes 中调试 DNS 解析
- cherrypy - 使用cherrypy.lib.sessions.expire
- python - Fabric 2.x:通过管道进行 tar 和 untar
- python-3.x - 使用 sqlite 运行 unittestts 时引发 OSError [WinError6]
- javascript - 如何使元素的功能连续运行或永不结束?
- python - 如何使用 python 将此文本转换为这些单词?
- android - 按下按钮时,Kotlin Firebase Groupie RecyclerView 滚动到顶部
- c# - NetFramework app referencing NetFramework library in same solution referencing NetStandard library in another soln.: could not load file or assembly
- java - 在 HQL 中删除所有具有对象的从站