【摘要】:在定义及使用变量时,以1个字节为基本单位整体使用。字节和位的关系:1 Byte = 8bits,即1个字节有8个位,每个位取值为0或1。则另一种状态要求灯2、灯6亮,其他灯灭,其目标控制值为01000100,只需将该值赋值给该单元即可表示相关状态。位运算可以解决类似的问题。要进行位运算,需要有两个前提:先要将数据转换成二进制。只能对整型和字符型数据进行位运算。
1个内存单元,即1个字节(Byte)大小。char类型变量占1个内存单元,short类型占2个内存单元。在定义及使用变量时,以1个字节为基本单位整体使用。
字节和位的关系:1 Byte = 8bits,即1个字节有8个位,每个位取值为0或1。
假如房间里有8盏灯,为了控制每盏灯的亮和灭,按照前面章节的知识,可以定义8个变量,每个变量至少占用1个字节,变量值为0表示灯灭,变量值为非0表示灯亮。
能不能只用1个字节变量的8个位来表示这8盏灯的亮灭呢?答案是肯定的。若某位为0表示灯灭,某位为1表示灯亮。
对比两种方法,发现使用“位操作”的方式能有效节省内存,提高效率。
假设某个时刻,要求灯1、灯3和灯5亮,其他灯灭,此时控制值为10101000(假设按照从左往右表示1~8灯)。则另一种状态要求灯2、灯6亮,其他灯灭,其目标控制值为01000100,只需将该值赋值给该单元即可表示相关状态。
如果事先不知道当前各盏灯的状态,如何在不影响其他灯的情况下,让某盏灯的状态发生改变,整体赋值方法就不再合适了,那么该如何操作呢?(www.daowen.com)
位运算可以解决类似的问题。C语言中的位运算符主要有以下两类:
(1)位逻辑运算符:&(位“与”)、|(位“或”)、~(位“非”)和^(位“异或”)。
(2)移位运算符:<<(左移)和>>(右移)。
要进行位运算,需要有两个前提:
(1)先要将数据转换成二进制。
(2)只能对整型和字符型数据进行位运算。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。
有关C语言程序设计应用教程的文章