微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

以最经济的方式保存一组从 0 到 127 的整数的数据结构

如何解决以最经济的方式保存一组从 0 到 127 的整数的数据结构

我正在开发一种交互式“掌上电脑”,用于对群组执行操作。

该项目的一个要求是定义一个“集合”类型,该类型包含来自封闭域 [127 ... 0] 的一组整数。就所需的内存量而言,数据结构必须是经济的,因此例如 128 字节的数组是不经济的。

解决方法

应用基础计算机科学,然后创建位域。

#define MAX_VAL 128

uint8_t bit_field [MAX_VAL / 8];

然后使用按位运算符访问它:

void set_bit (size_t n,bool set)
{
  if(set)
  {
    bit_field [n/8] |= 1u << (n % 8);
  }
  else
  {
    bit_field [n/8] &= (uint8_t)~(1u << (n % 8));
  }
}

这是内存超速优化。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。