首页 > 其他分享 >bit存储读取方法

bit存储读取方法

时间:2024-03-27 17:03:54浏览次数:29  
标签:存储 读取 unsigned value char static bit data

一般为了节省内存,一个unsigned char占8bit,分bit进行存储。存储时单个bit对外可以使用bool值,多个连续的bit可以使用unsigned char。

获取/设置单个bit值方法

获取/设置多个连续bit值方法

static bool getBitValue(unsigned char data, unsigned char bit)
{
  return (data >> bit) & 1;  
}

static void setBitValue(unsigned char &data, bool value, unsigned char bit)
{
      if(value)
      {
         data |= (1u << bit);
      }      
      else
      {
         data &= ~(1u << bit);
      }
}        

static unsigned char getRangeBitValue(unsigned char data, unsigned char lower_bit, unsigned char high_bit)
{
      data = data & ((1 << (high_bit + 1)) - 1);
      data = data >> lower_bit;
      return data;
}

static void setRangeBitValue(unsigned char &data,unisgned char value, unisgned char lower_bit, unsigned char high_bit)
{
      value << lower_bit;

      unsigned char mask = (1 << (high_bit + 1)) -1;
      mask = mask & ~((1 << lower_bit) - 1);

      value &= mask;
      data &= ~mask;
      data |= value;
}

 

标签:存储,读取,unsigned,value,char,static,bit,data
From: https://www.cnblogs.com/amandali/p/18099722

相关文章

  • Python读取NC文件指定经度、纬度与时相的数据
    Python读取NC文件指定经度、纬度与时相的数据本文介绍基于Python语言的netCDF4库,读取.nc格式的数据文件,并提取指定维(时间、经度与纬度)下的变量数据的方法。我们之前介绍过.nc格式的数据,其是NetCDF(NetworkCommonDataForm)文件的扩展名,是一种常用的科学数据存储格式,多用于存储科......
  • TorchV的RAG实践分享(三):解析llama_index的数据存储结构和召回策略过程
    1.前言LlamaIndex是一个基于LLM的数据处理框架,在RAG领域非常流行,简单的几行代码就能实现本地的文件的对话功能,对开发者提供了极致的封装,开箱即用。本文以官方提供的最简单的代理示例为例,分析LlamaIndex在数据解析、向量Embedding、数据存储及召回的整个源码过程。通过学习框架......
  • Pandas操作MultiIndex合并行列的Excel,写入读取以及写入多余行及Index列处理,插入行,修改
    Pandas操作MultiIndex合并行列的excel,写入读取以及写入多余行及Index列处理1.效果图及问题2.源码参考今天是谁写Pandas的复合索引MultiIndex,写的糊糊涂涂,晕晕乎乎。是我呀…记录下,现在终于灵台清明了。明天在记录下直接用openpyxl生成合并单元格,事半功倍。跟......
  • BitLocker和EFS(Encrypting File System)是Windows操作系统中用于数据加密的两种不同的
    BitLocker和EFS(EncryptingFileSystem)是Windows操作系统中用于数据加密的两种不同的功能。BitLocker:BitLocker是一种全磁盘加密技术,它可以加密整个硬盘驱动器上的数据,包括操作系统、应用程序和用户数据等。BitLocker可以保护计算机在启动时的数据安全,并且可以通过预启动认......
  • 使用python读取Excel文件
    在VBA里使用SAPGUIScripts执行批量操作很方便,如果不熟悉VBA,写起VBA代码感觉挺不方便的。下面是Python代码用来读取Excel文件里的内容,代码挺简单的。importopenpyxl#指定Excel文件路径excel_file='D:\data\11.xlsx'#打开Excel文件workbook=openpyxl.load_workbo......
  • 《深入理解计算机系统》学习(4):过程(如函数)和栈存储
    目录过程1运行时栈2转移控制3数据传送4栈上局部存储过程过程中是软件中一种很重要的抽象,提供了一种封装代码的方式,用一组指定的参数和一个可选的返回值实现了某种功能。然后,可以在程序的不同的地方使用这个功能。设计良好的软件用过程作为抽象机制,隐藏某个行为......
  • 上传图片前端使用base64数据格式展示,后端数据库存储二进制文件
    添加时上传图片upload.render({elem:'#docImg',url:Feng.ctxPath+'/doctor/upload'//改成您自己的上传接口,before:function(obj){//预读本地文件示例,不支持ie8obj.preview(function(index,file,result){......
  • 产品推荐 | 基于EV10AQ190的多通道 最大5Gsps 10bit AD FMC子卡
    一、板卡概述  FMC147是一个四通道多模式AD子卡,完全符合VITA 57.1标准。该卡提供4个10位ADC通道,支持采样4、2、或1通道,采样速率为5Gsps、2.5 GSPS、1.25Gsps选择。  采样时钟可以通过一个同轴电缆连接外部提供,或由内部时钟源(可选锁定到一个外部参考)提供,通过I2C串行......
  • 2、RabbitMQ、Erlang
    1、RabbitMQ是一个实现了高级消息队列协议(AMQP)的开源消息代理软件,也被称为面向消息的中间件。RabbitMQ服务器是用Erlang语言编写的,而集群和故障转移则是构建在开放电信平台框架上的。RabbitMQ具有以下特点:可扩展性:RabbitMQ可以通过添加更多的节点和队列来实现水平扩展,从而提高......
  • rabbitmq安装使用问题汇总
    附上别的同学的安装教程:win10安装rabbitMQ详细步骤_rabbitmq安装-CSDN博客安装rabbitmq之前是需要先安装erlang环境的,否则的话是无法安装的,还有一点就是安装的版本要对应上,否则也是会存在问题的*重点:rabbitmq安装的时候要选择管理员权限安装,否则可能出现其他问题,后面还是要重......