当前位置: 首页 > news >正文

关于位结构体及位操作总结

#include <stdio.h>
#pragma pack(1)
struct stu{char a:4; // a占用char的低4位  char b:4; // b占用char的高4位(注意,这里实际上是与a共享同一个char的空间)  
};
#pragma pack(4)
int main()
{struct  stu s={.a=2,   //a:0010.b=3,   //b:0011};struct  stu s1={.a=2,   //a:0010.b=8,   //b:1000};printf("%d\n",*(char *)&s);//s打印出50: 0000 0000 0000 0000 0000 0000 0011 0010(输出时符号位扩展)printf("%d\n",*(char *)&s1);//打印出-126(0000 0000 0000 0000 0000 0000 0111 1110)printf("sizeof %ld\n",sizeof s);return 0;
}
#include <stdio.h>  struct mybitfields  
{  unsigned short a : 4;  unsigned short b : 5;  unsigned short c : 7;  
}test;  int main()   
{  int i;  test.a=2;  test.b=3;  test.c=0;  i=*((short *)&test);  printf("%d ",i);  return 0;  
}  

在定义结构体的时候,分配的成员a 4位的空间, b 5位,c7位,一共是16位,正好
两个字节。下面画一个简单的示意:
变量名  位数

  

两个字节为 0000 0000 0011 0010 

在执行i=*((short *)&test);时,取从地址&test开始两个字节(short占两个字节)的内容转化为short型数据,即为0x0032,
再转为int型为0x00000032,即50。输出的结果就是50。当然,这里还涉及到字节及位的存储顺序问题。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 项目拆解:短视频冷门赛道—ai绘画+温馨小屋,引流变现全攻略
  • 传统CV算法——基于opencv的答题卡识别判卷系统
  • 机器学习项目——基于机器学习(RNN LSTM 高斯拟合 MLP)的锂离子电池剩余寿命预测方法研究(代码/论文)
  • python办公自动化:使用`Python-PPTX`的样式与格式
  • C++ ─── List的模拟实现
  • Datawhale X 李宏毅苹果书 AI夏令营-深度学习进阶task3:批量归一化
  • 接口请求400
  • C#面试题系列--动态更新
  • ES6中是如何实现模块化
  • 【聚星文社】AI一键生成工具素材包
  • 收藏夹里的“小网站”被误报违规不让上怎么办?如何将Chrome和Edge安装到 D 盘(含用户数据),重装系统也不会丢失收藏夹和密码?
  • 碳水化合物的摄入量笔记
  • 如何选择合适的合同比对工具以满足企业的不同需求?
  • 虚拟化技术 使用vSphere Client管理ESXi服务器系统
  • AI写作保姆级方法论第六节-AI的终极调教心法(问题+解决方案)
  • [译] React v16.8: 含有Hooks的版本
  • [译]CSS 居中(Center)方法大合集
  • 【Amaple教程】5. 插件
  • bearychat的java client
  • java概述
  • JS学习笔记——闭包
  • leetcode-27. Remove Element
  • leetcode388. Longest Absolute File Path
  • Linux下的乱码问题
  • Python_网络编程
  • SpiderData 2019年2月13日 DApp数据排行榜
  • spring cloud gateway 源码解析(4)跨域问题处理
  • Webpack4 学习笔记 - 01:webpack的安装和简单配置
  • 安卓应用性能调试和优化经验分享
  • 从地狱到天堂,Node 回调向 async/await 转变
  • 大快搜索数据爬虫技术实例安装教学篇
  • 给初学者:JavaScript 中数组操作注意点
  • 精益 React 学习指南 (Lean React)- 1.5 React 与 DOM
  • 三分钟教你同步 Visual Studio Code 设置
  • 想写好前端,先练好内功
  • 用简单代码看卷积组块发展
  • 400多位云计算专家和开发者,加入了同一个组织 ...
  • ​​​【收录 Hello 算法】10.4 哈希优化策略
  • ​​​【收录 Hello 算法】9.4 小结
  • ###项目技术发展史
  • #include
  • #预处理和函数的对比以及条件编译
  • ( 用例图)定义了系统的功能需求,它是从系统的外部看系统功能,并不描述系统内部对功能的具体实现
  • (6)STL算法之转换
  • (LeetCode C++)盛最多水的容器
  • (react踩过的坑)Antd Select(设置了labelInValue)在FormItem中initialValue的问题
  • (补充)IDEA项目结构
  • (独孤九剑)--文件系统
  • (力扣记录)1448. 统计二叉树中好节点的数目
  • (七)微服务分布式云架构spring cloud - common-service 项目构建过程
  • (四)linux文件内容查看
  • (一)SpringBoot3---尚硅谷总结
  • (一)项目实践-利用Appdesigner制作目标跟踪仿真软件
  • (幽默漫画)有个程序员老公,是怎样的体验?
  • (转)AS3正则:元子符,元序列,标志,数量表达符