C语言程序设计本章重点:●位运算符和位运算●位段的概念第12章位运算§12
1位运算符和位运算位运算:以二进制位为单位的运算
位运算仅限于整数(整型数和字符型)一、与位运算符(&)1
运算规则运算的两个二进制位值都为1,结果才为12
举例3&5=118&35=
二、或位运算符(|)1
运算规则运算的两个二进制位值有一个为1,结果就为12
举例3|5=
18|35=
两个数组或运算的意义延伸三、异或位运算符(^)1
运算规则运算的两个二进制位值不同,结果为1,否则结果为02
举例A=3A=A^5=
A=A^5=
两个数组异或运算的意义延伸四、取反位运算符(~)1
运算规则若运算的位值为1,结果为0,值为0,则结果为1
第12章第1页C语言程序设计2
取反位运算符的运算优先级高于其它位运算符取反在图形学上的含义五、左移位运算符(5七、赋值位运算符1
运算符&=,|=,^=,>>=,(15-i);t=t&1;printf("%d",t);*/}getch();}/*方法三*/#include"conio
h"#include"math
h"main(){intx,i,t,n;clrscr();printf("pleaseinputx:");scanf("%d",&x);for(i=0;i>i;gotoxy(16-i,4);printf("%d",t);/*n=pow(2,15-I);t=x&n;t=t>>(15-I);printf(“%d”,t);*/}getch();}第12章第4页C语言程序设计§12
2位段位段:在一个结构体中可以以位为单位来指定其成员所占内存长度,这种以位为单位的成员称为位段(或位域)
一、位段的定义如:structpacked_data{unsigneda:2;unsignedb:3;unsignedc:4;inti;}data;