龙空技术网

闲聊c语言的位操作

数理土豆饼 219

前言:

现在姐妹们对“c语言 按位或”大体比较重视,看官们都需要了解一些“c语言 按位或”的相关内容。那么小编也在网络上汇集了一些有关“c语言 按位或””的相关文章,希望你们能喜欢,兄弟们快快来学习一下吧!

在其它 编程语言,比如java 和 python 中,位操作不常用到,毕竟我们是 按 变量的 实际类型,比如 整型,字符型,浮点型 来 理解 变量的。一般不会 涉及到 变量 或 一个地址 具体每一比特的 内容。

但是在底层开发中,当需要 用 程序操纵和控制芯片时,因为芯片的 数据手册 的 寄存器定义 都是 精确到 每一个 比特的。所以 做操作系统 芯片移植和支持,以及芯片驱动 程序开发,对变量的 每一个比特的内容进行 精确 设置 和读取,就非常重要。

c语言位操作有 移位运算符 >> <<,可以将一个变量 右移 或 左移 n个比特。

按位与 运算符,&,只有两个变量的对应位都是1 结果才是1

按位或 运算符| 只要两个运算位,其中有一个为1 结果 就是1

按位异或 运算符 ^ 只有两个 运算位 不同,结果是1 ,如果相同,结果是0

按位 求反 运算符,~ 原来 是1 的 变为0原来是0的变为1

有了以上运算符 为工具,就可以 随意 读取和 设置一个变量中特定的比特位了。

位段的 作用,和位操作类似,可以定义 一个位段,对特定的 连续几个比特进行操作,突破了 字节是8比特的 限制,使用起来比较方便。

标签: #c语言 按位或