1、按位运算就是对字节或字中的实际位进行检测、设置或移位。
位运算符
2、位段的概念与定义
位段类型是一种特殊的结构类型,其所有成员的长度均是以二进制位为单位定义的,结构中的成员被称为位段。位段定义的一般形式为:
结构 结构名
          {
               类型     变量名 1:长度;
               类型     变量名 2:长度;
               。。。
               类型     变量名 n:长度;
          }
一个位段必须被说明是int、unsigned或signed中一种。
如:
struct packed_data
{
unsigned a:2;
unsigned b:1;
unsigned c:1;
unsigned d:2;
}data;
这里的a.b.c.d分别占2位,1位,1位,2位。
3、位段的相关说明
(1)因为位段类型是一种结构类型,所以位段类型和位段变量的定义,以及对位段(即位段类型中的成员)的引用均与结构体变量相同。
(2)某一位段要从另一个字节开始存放,则在中间加一句“unsigned :0;”
(3)可以使各个位段占满一个字节也可以不占满一个字节。若不占满一个字节在末尾加上“int i;”即可。
(4)一个位段必须存储在一个存储单元(通常为一个字节)中,不能跨两个存储单元。如果本单元不够容纳某个位段,则从下一单元开始存储该位段。
(5)可以用“%d”、“%x”、“%u”、“%o”等格式字符,以整数形式输出位段。
(6)在数值表达式中引用位段时,系统自动将位段转换为整形数。

《c语言从入门到精通》看书笔记——第12章 位运算相关推荐

  1. 《c语言从入门到精通》看书笔记——第16章 网络套接字编程(上)——网络

    1.IP地址 每台计算机都需要一个IP地址以识别自己,IP地址由IP协议规定的32位的二进制表示,最新的IPV6协议将IP地址提升为128位,但还不能广泛应用. 32位的IP地址主要分为前缀和后最两部 ...

  2. 《c语言从入门到精通》看书笔记——第14章 文件

    1.文件的基本操作 (1)文件指针 文件指针是指向文件有关信息的指针,这些信息包含文件名,状态,和当前位置,他们保存在一个结构体变量中.在使用文件时需要在内存中为其分配空间,用以存放文件的基本信息.该 ...

  3. 《c语言从入门到精通》看书笔记——第13章 预处理

    1.宏定义 宏定义是预处理命令的一种,它提供了一种可以替换源代码中字符串的机制. 宏定义指令#define用来定义一个标识符和一个字符串,一这个标识符来代表这个字符串,在程序中每次遇到该标识符时就用所 ...

  4. 《c语言从入门到精通》看书笔记——第10章 指针

    1.地址与指针 地址:就是内存区中对每个字节的编号 指针:可以看作是内存中的一个地址.在程序中定义了一个变量,在进行编译时就会给该变量在内存中分配一个地址,通过访问这个地址可以找到相应的变量,这个变量 ...

  5. 《c语言从入门到精通》看书笔记——第3章 数据类型

    1.编程规范 (1)代码缩进:统一为4字符,用Tab (2)变量常量命名规范:常量命名统一为大写格式.如果成员变量,均以m_开始.普通变量,取与实际意义相关的名称,要在前面添加类型的首字母,并且名称的 ...

  6. 《c语言从入门到精通》看书笔记——第2章 算法

    1.通常,一个程序包含算法.数据结构.程序设计方法及语言工具和环境这四个方面 2.算法的特性: 有效性.确定性.可行性.输入(一个算法应有零个获多个输入).输出(1个或多个) 3.算法的优劣: (1) ...

  7. 《c语言从入门到精通》看书笔记——第1章 C语言的概述

    1.使用普遍的高级语言有:Fortran/ALGOL/Basic/COBOL/LISP/Pascal/PRLOLG/C/C++/VC/VB/Delphi/Java等 2. C语言是一个面向过程的语言, ...

  8. 《c语言从入门到精通》看书笔记——第16章 网络套接字编程(下)——套接字

    1.套接字概述 套接字是网络通信的基石,是网络通信的基本构件. 所谓套接字,实际上是一个指向传输提供者的句柄.在WinSock中,就是通过操作该句柄来实现网络通信和管理的.根据性质和作用不同,套接字可 ...

  9. 《c语言从入门到精通》看书笔记——第15章 存储管理

    1.内存的组织方式 程序被组织成以下4个逻辑段 (1)可执行代码 (2)静态数据.可执行代码和静态数据存储在固定的内存位置 (3)动态数据(堆).程序请求动态分配的内存来自内存池,也就是上面所列举的堆 ...

最新文章

  1. 【Java基础】字符串与数组
  2. 网站关键词优化如何控制其密度?
  3. 强制修改mysql 中root的密码
  4. kubesphere添加新节点
  5. 算法全覆盖,还能玩星际争霸,开源决策智能平台OpenDILab面世
  6. koa router ajax,ajax 请求 koa2 router.post 404
  7. linux日志使用方法,Linux 日志终极指南
  8. [Linux]vi/vim下添加多行注释和取消注释
  9. DataWhale组队-Pandas(下)缺失数据(打卡)
  10. linux内核makefile详解,linux kernel编译Makefile和Kconfig,make menuconfig详解
  11. vs怎么把文字超链接_怎么拥有自己设计的简单个人网站(超细节)
  12. python合并表格用什么库_python合并多个excel表格数据库-python实现excel合并
  13. java.util.concurrent.ExecutionException: java.lang.OutOfMemoryError: PermGen space
  14. 抗滑桩初始弹性系数计算_抗滑桩设计验算1
  15. 计算机打字练习程序,一个简单的打字练习程序
  16. Unity2019安卓平台新手安装设置建议
  17. 【Zynq UltraScale+ MPSoC解密学习1】Zynq UltraScale+的基本介绍
  18. 朋友圈长文不折叠神器
  19. 当button具有disabled属性时,el-tooltip也失效。解决办法
  20. 网络安全基础——Linux基础

热门文章

  1. encountered unknown setting 'componentData' for class 'cus.crm.mycalendar.C
  2. variable not availabe in Chrome debugger
  3. 如何解决push commit conflict
  4. Workaround for Search for my account in MyAppointment
  5. How where used list in SAP GUI is implemented
  6. 如何定制化SAP Spartacus的购物车图标
  7. Kubenetes里pod和service绑定的实现方式
  8. 怎样在待机时锁定计算机,教你电脑待机锁屏怎么设置
  9. python链接mysql系统结构设计_MySQLpython交互
  10. cpu win10 安装yolo_Win10+YOLOv3完整安装过程(亲测可运行)