C语言中对字节和字的位的常规操作汇总及示例

这篇具有很好参考价值的文章主要介绍了C语言中对字节和字的位的常规操作汇总及示例。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

/*
函数说明:
UINT16 value  要操作的数据
UINT16 start  要取的操作数据中的开始字节位
UINT16 end    要取的操作数据中的结束字节位
使用示例:
    UINT16 t = 0x36; //0011 0110
    UI16BIT res = Proget_16bits(t,4,5);
    qDebug() << "res = " << res;
    res = Proget_16bits(t,4,5);
    qDebug() << "res = " << res;
*/
UINT16 Proget_16bits(UINT16 value,UINT16 start,UINT16 end)//从某一个字中取连续的几位,所表示的数值
{
  UINT16 a,b,c;
  a=value>>(start);
  b=~(~0<<(end-start+1));
  c=a&b;
  return c;
}
/*
函数说明:
BYTE value  要操作的数据
BYTE start  要取的操作数据中的开始字节位
BYTE end    要取的操作数据中的结束字节位
使用示例:
    BYTE t = 0x36; //0011 0110
    BYTE res = Proget_8bits(t,4,5);
    qDebug() << "res = " << res;
    res = Proget_8bits(t,4,5);
    qDebug() << "res = " << res;
*/
BYTE Proget_8bits(BYTE value,BYTE start,BYTE end) //从某一个字节中取连续的几位,所表示的数值
{
  BYTE a,b,c;
  a=value>>(start);
  b=~(~0<<(end-start+1));
  c=a&b;
  return c;
}文章来源地址https://www.toymoban.com/news/detail-501630.html

/* 将某个数据value的第bit位置1,其它位保持不变  */
#define setDataBit(value,bit) value |= (0x1 << bit)
/* 将某个数据value的第bit位清0,其它位保持不变  */
#define clrDataBit(value,bit) value &= ~(0x1 << bit)
/* 获取数据的某一位二进制数据值 */
#define getDataBit(x,y)   ((x) >> (y)&1)

到了这里,关于C语言中对字节和字的位的常规操作汇总及示例的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Java代码中对文件的操作

    这几天的项目涉及到了文件的操作,我这边做一下整理 jdk版本:1.8.0_311

    2024年02月12日
    浏览(20)
  • MFC中对编码文件的操作01

    (1)、创建单例类 (2)、查找CFileFind类 这个类用于查找指定根目录下面的文件和文件夹,或者特定的文件。 1)、FindFile 函数会返回一个BOOL值,如果为1说明当前路径下还有文件或文件夹。参数是你指定的目录。 2)、FindNextFile函数,无参数,查找下一个文件或者文件夹。

    2024年02月22日
    浏览(29)
  • 在SpringBoot中对es集群的查询操作

                将以上代码复制到kibana的控制台上运行          运行完后可以到打开head插件查看信息           数据准备完成后我们就可以开始查询了                  通过上述两个查询我们发现,查询数据的时候会有很多冗余的部分,所以我们可以将这一部分代码进

    2024年02月12日
    浏览(29)
  • C语言中对变量的理解

    对变量的理解 1.什么是变量? Ⅰ.概念: Ⅱ.作用: Ⅲ.注意: 2.变量的声明与赋值 Ⅰ.声明 Ⅱ.赋值 3.变量的作用域 Ⅰ.文件作用域(file scope) Ⅱ.块作用域(block scope) 4.变量按数据类型分类         变量(variable)是程序中不可或缺的组成单位,是最基本的存储单元。 内存

    2024年01月16日
    浏览(24)
  • jar命令:linux中对jar文件的操作

    在 Linux 中,您可以使用 jar 命令来对 jar 文件中的文件进行编辑。jar 命令是 Java Development Kit (JDK) 中的一部分,用于创建、查看和修改 jar 文件。 先看一下jar自带的帮助文档 linux中,替换jar包中的文件,可以减少重新打包上传的时间,尤其是网速不好的时候。 根据文件名,查

    2024年02月10日
    浏览(46)
  • C语言--带哨兵位的双向循环链表的创建及使用详解

    带哨兵位的双向循环链表是一种数据结构,它由多个节点组成,每个节点包含一个数据元素和两个指针,分别指向 前一个节点和后一个节点 ,这样可以实现双向遍历。而且由于是循环链表,所以最后一个节点的后继节点是第一个节点,第一个节点的前驱节点是最后一个节点

    2024年01月21日
    浏览(23)
  • C语言每日一题(5):求两个数二进制中不同位的个数

    文章主题:求两个数二进制中不同位的个数🔥 所属专栏: C语言每日一题 📗 作者简介:每天不定时更新C语言的小白一枚,记录分享自己每天的所思所想😄🎶 个人主页: [₽]的个人主页 🏄🌊 最近刚学位操作符以及二进制码的相关知识,于是想出了求两个数二进制中不同

    2024年02月07日
    浏览(35)
  • macos 操作知识和命令行常规操作

    在 macOS 终端中,你可以使用 cd 命令来切换位置(即改变当前工作目录)。下面是一些常用的命令和技巧: 查看当前所在位置:可以使用 pwd 命令来显示当前工作目录的完整路径。 切换到指定目录:使用 cd 命令后加上目标目录的路径,例如 cd /path/to/directory 。你可以使用绝对

    2024年02月10日
    浏览(21)
  • 【C语言】宏实现一个整数的二进制位的奇数位和偶数位交换

    要写一个宏实现将一个整数的二进制位的奇数位和偶数位交换,我们首先要分析如何将一个整数的二进制位的奇数位和偶数位交换 以下以整数7为例 7的二进制: 0000 0000 0000 0000 0000 0000 0000 0111   7 奇数位与偶数位交换后为: 0000 0000 0000 0000 0000 0000 0000 1011  11 📖分析: 交换

    2024年02月05日
    浏览(24)
  • Linux常规操作指南

    (1)查看当前目录内容 或查看详细信息: (2)切换工作目录 (3)创建新目录 (4)删除空目录 (5)删除文件或目录(递归删除) (1)复制文件或目录 (2)移动或重命名文件/目录 (3)查看文件内容 (4)编辑文件(使用vi/vim编辑器) 在vi中,输入 i 进入插入模式,编辑

    2024年01月19日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包