C++ 2.5 字节(20 位)整数

2024-01-17

我知道这很荒谬,但我需要它来优化存储。有什么好的方法用C++实现吗?

它必须足够灵活,以便我可以将它用作普通数据类型,例如Vector< int20 >、运算符重载等。


如果存储是您主要关心的问题,我怀疑您需要相当多的 20 位变量。将它们成对存放怎么样?你可以创建一个代表两个这样的变量的类并将它们存储在 2.5+2.5 = 5 个字节中。

为了方便地访问变量,您可以覆盖 [] 运算符,这样您就可以编写:

int fst = pair[0];
int snd = pair[1];

因为您可能希望允许进行诸如

pair[1] += 5;

您不想返回支持字节的副本,而是返回一个参考。但是,您不能返回对支持字节的直接引用(因为它会弄乱其相邻值),因此您实际上需要返回一个支持字节的代理(反过来又引用了支持字节)并让代理重载相关运算符。

事实上,正如 @Tony 所建议的,您可以将其概括为拥有一个通用容器来保存 N 个这样的 20 位变量。

(我自己在向量的专门化中完成了此操作,以有效存储布尔值(作为单个位)。)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C++ 2.5 字节(20 位)整数 的相关文章

  • 编译时运算符

    有人可以列出 C 中可用的所有编译时运算符吗 C 中有两个运算符 无论操作数如何 它们的结果始终可以在编译时确定 它们是sizeof 1 and 2 当然 其他运算符的许多特殊用途可以在编译时解决 例如标准中列出的那些整数常量表达式 1 与
  • EF Core Group By 翻译支持条件总和

    听说 EF Core 2 1 将支持翻译小组 我感到非常兴奋 我下载了预览版并开始测试它 但发现我在很多地方仍然没有得到翻译分组 在下面的代码片段中 对 TotalFlagCases 的查询将阻止翻译分组工作 无论如何 我可以重写这个以便我
  • 如何使用 C# 中的参数将用户重定向到 paypal

    如果我有像下面这样的简单表格 我可以用它来将用户重定向到 PayPal 以完成付款
  • Web 客户端和 Expect100Continue

    使用 WebClient C NET 时设置 Expect100Continue 的最佳方法是什么 我有下面的代码 我仍然在标题中看到 100 continue 愚蠢的 apache 仍然抱怨 505 错误 string url http
  • 动态加载程序集的应用程序配置

    我正在尝试将模块动态加载到我的应用程序中 但我想为每个模块指定单独的 app config 文件 假设我的主应用程序有以下 app config 设置
  • 按成员序列化

    我已经实现了template
  • ASP.NET MVC:这个业务逻辑应该放在哪里?

    我正在开发我的第一个真正的 MVC 应用程序 并尝试遵循一般的 OOP 最佳实践 我正在将控制器中的一些简单业务逻辑重构到我的域模型中 我最近一直在阅读一些内容 很明显我应该将逻辑放在域模型实体类中的某个位置 以避免出现 贫血域模型 反模式
  • 查找c中结构元素的偏移量

    struct a struct b int i float j x struct c int k float l y z 谁能解释一下如何找到偏移量int k这样我们就可以找到地址int i Use offsetof 找到从开始处的偏移量z
  • 使用实体框架模型输入安全密钥

    这是我今天的完美想法 Entity Framework 中的强类型 ID 动机 比较 ModelTypeA ID 和 ModelTypeB ID 总是 至少几乎 错误 为什么编译时不处理它 如果您使用每个请求示例 DbContext 那么很
  • Clang 3.1 + libc++ 编译错误

    我已经构建并安装了 在前缀下 alt LLVM Clang trunk 2012 年 4 月 23 日 在 Ubuntu 12 04 上成功使用 GCC 4 6 然后使用此 Clang 构建的 libc 当我想使用它时我必须同时提供 lc
  • 不同枚举类型的范围和可转换性

    在什么条件下可以从一种枚举类型转换为另一种枚举类型 让我们考虑以下代码 include
  • 使用 WebClient 时出现 System.Net.WebException:无法创建 SSL/TLS 安全通道

    当我执行以下代码时 System Net ServicePointManager ServerCertificateValidationCallback sender certificate chain errors gt return t
  • 使用 Bearer Token 访问 IdentityServer4 上受保护的 API

    我试图寻找此问题的解决方案 但尚未找到正确的搜索文本 我的问题是 如何配置我的 IdentityServer 以便它也可以接受 授权带有 BearerTokens 的 Api 请求 我已经配置并运行了 IdentityServer4 我还在
  • 转发声明和包含

    在使用库时 无论是我自己的还是外部的 都有很多带有前向声明的类 根据情况 相同的类也包含在内 当我使用某个类时 我需要知道该类使用的某些对象是前向声明的还是 include d 原因是我想知道是否应该包含两个标题还是只包含一个标题 现在我知
  • 如何在 C 中调用采用匿名结构的函数?

    如何在 C 中调用采用匿名结构的函数 比如这个函数 void func struct int x p printf i n p x 当提供原型的函数声明在范围内时 调用该函数的参数必须具有与原型中声明的类型兼容的类型 其中 兼容 具有标准定
  • 这些作业之间是否存在顺序点?

    以下代码中的两个赋值之间是否存在序列点 f f x 1 1 x 2 不 没有 在这种情况下 标准确实是含糊不清的 如果你想确认这一点 gcc 有这个非常酷的选项 Wsequence point在这种情况下 它会警告您该操作可能未定义
  • 链接器错误:已定义

    我尝试在 Microsoft Visual Studio 2012 中编译我的 Visual C 项目 使用 MFC 但出现以下错误 error LNK2005 void cdecl operator new unsigned int 2
  • WPF/C# 将自定义对象列表数据绑定到列表框?

    我在将自定义对象列表的数据绑定到ListBox in WPF 这是自定义对象 public class FileItem public string Name get set public string Path get set 这是列表
  • 如何将带有 IP 地址的连接字符串放入 web.config 文件中?

    我们当前在 web config 文件中使用以下连接字符串 add name DBConnectionString connectionString Data Source ourServer Initial Catalog ourDB P
  • C# 模拟VolumeMute按下

    我得到以下代码来模拟音量静音按键 DllImport coredll dll SetLastError true static extern void keybd event byte bVk byte bScan int dwFlags

随机推荐

  • 截断后更新缓慢

    我有一个相对简单的更新语句 update sv konginfo ki set AnzDarl 1 where kong nr in select kong nr from sv darlehen group by kong nr havi
  • Keras:input_shape=train_data.shape 产生“列表索引超出范围”

    我想使用 Keras 构建 CNN LSTM 网络 但是 我很难找到第一层的正确形状input shape范围 My train data是形状的 ndarray 1433 32 32 1433 张尺寸为 32x32 的图片 正如发现的这个
  • j2me - 列表是否有任何属性来跟踪标识项目的“密钥”

    您通常如何处理列表以及它们没有明确标识特定项目的属性这一事实 到目前为止 我能想到的唯一解决方案是将我使用的密钥放在开头 后跟连字符和每个项目上显示的文本 这样 当我从所选项目中检索文本时 我可以获得该项目的密钥 我就是这样做的 但肯定有更
  • 如何在 Eclipse 项目中使用 Firebase 云消息?

    我在 eclipse 中有一个项目 我需要包括firebase https console firebase google com 图书馆 如果我使用 Android Studio 步骤将很简单 所有的图书馆都包括在内 但我无法理解如何将
  • 使用 JWT OAuth 2.0 令牌的 Cordova 应用程序中的 Azure MFA

    我正在开发一个 Cordova 应用程序 该应用程序 到目前为止 使用密码授予从 Azure 中的 Microsoft 标准 OAuth 提供程序检索 JWT https login microsoftonline com tenant o
  • 使用 bootstrap-vue 导航栏 item-dropdown 更改文本颜色

    我在用Bootstrap Vue编写网页 但我无法更改网页上的文本颜色Bootstrap navbar 尤其是b nav item dropdown标签 我尝试过使用 span class text dark span
  • 如何获取我的项目路径? [复制]

    这个问题在这里已经有答案了 可能的重复 使用 C 获取我的 exe 的路径 https stackoverflow com questions 3991933 get path for my exe using c sharp 你好我有一个
  • 如何使用 terraform 将 ssh 密钥添加到 GCP 实例?

    因此 我有一个在 Google Cloud Platform 中创建实例的 terraform 脚本 我希望能够让我的 terraform 脚本也将我的 ssh 密钥添加到我创建的实例中 以便我可以通过 ssh 来配置它们 这是我当前的 t
  • 使用UTF-16LE编码读取csv的快速方法

    我正在处理使用 UTF 16LE 编码的 csv 文件 此方法可以读取文件 但与 read csv 相比 read csv 非常慢 read csv2 path dec skip 1 header T fileEncoding UTF 16
  • Scrollviewer 和 SIP 问题 (WP7.5 Mango)

    我正在编写一个包含注册表单的应用程序 该表单包含多个文本输入框 因此使用 ScrollViewer 将它们全部显示在一页上 以下是我正在使用的 XAML 代码的精简示例
  • 循环遍历sed的结果

    我在循环访问 sed 返回的存储在变量中的行时遇到问题 目前看起来有点像这样 lines sed rne timestamplastupload timestampnow p var log test log for line in lin
  • ASP.Net Core 中的 Hangfire:简单的重复作业不会刷新其动态内容

    我正在尝试在 ASP Net Core 1 1 中的 Web 应用程序上实现 cron 任务 我决定选择Hangfire https www hangfire io 图书馆 为了检查我的安装和配置是否正常工作 我刚刚编写了一个非常简单的重复
  • 如何在 android 单元测试中创建位置?

    我想使用 JUnit 4 在 android 单元测试中创建一个位置 和 位置 loc 新位置 loc 为空 我如何创建位置 据我了解 我必须使用以下命令将位置包含在 build gradle 依赖项中 测试编译 但我找不到要包含的内容 你
  • 如何找到文件所在的挂载点?

    例如 我有一个具有以下路径的文件 media my mountpoint path to file txt 我已经有了完整的路径并且想要得到 media my mountpoint 我怎样才能做到这一点 最好使用 Python 并且不使用外
  • 带有参数化查询的 jsonb 存在运算符

    或者问号问题 我目前正在 php 中实现 postgres 数据库的搜索功能 该功能使用新的 jsonb 类型 为了实现这一目标 我正在执行带有命名占位符的准备好的语句 然而 我在尝试使用一些新的 postgres 时遇到了一个有趣的问题J
  • 自动将用户自定义字段添加到订单元数据中

    当客户下订单时 是否可以自动将客户自定义字段的值复制到订单的自定义字段 应该使用任何插件 扩展程序还是通过幕后自定义编码来完成 此自定义字段不需要显示在客户订单视图上 当我们通过 API 获取订单时 我们只需要它来区分订单是由 Consum
  • Java - notification() 与 notifyAll() - 可能死锁?

    有没有什么情况notify 可能会导致死锁 但是notifyAll 绝不 例如 在多个锁的情况下 notify 仅通知一个线程运行 该线程检查某个对象的锁定并再次等待 尽管另一个线程可以解锁该对象 如果使用notifyAll 所有线程都会被
  • Android:如何关闭 EditText 的 IME?

    如何关闭 IME 功能EditText 或者 如何避免显示 IME 键盘 我有一个布局 其中我的特殊键盘位于EditText所以不需要显示 IME 请理解 我无法将我的键盘实现为 IME 因为它是特定于此的EditText在任何其他情况下使
  • 更改itms-services安装提示信息

    现在 我有一个定义如下的链接 a itms services action download manifest url https loqi me install Geoloqi plist a 当用户单击此链接时 将显示以下消息 该消息由
  • C++ 2.5 字节(20 位)整数

    我知道这很荒谬 但我需要它来优化存储 有什么好的方法用C 实现吗 它必须足够灵活 以便我可以将它用作普通数据类型 例如Vector lt int20 gt 运算符重载等 如果存储是您主要关心的问题 我怀疑您需要相当多的 20 位变量 将它们