电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

全国计算机等级考试2C课程第12讲 位运算VIP免费

全国计算机等级考试2C课程第12讲 位运算_第1页
1/24
全国计算机等级考试2C课程第12讲 位运算_第2页
2/24
全国计算机等级考试2C课程第12讲 位运算_第3页
3/24
全国计算机等级考试3C课程第十二讲位运算第十二讲位运算25/1/3作者:张旭仟版权所有欢迎盗版2位运算的概念前面我们所学的各种运算,都是以字节作为基本单位进行的。所谓位运算,就是以二进制位为基本单位进行的运算C语言提供了6种基本位运算符,如下所示:此外,位运算符也可以与赋值运算符一起组成复合赋值符。如:&=、|=、^=、>>=、<<=运算符含义运算符含义&与~取反|或<<左移∧异或>>右移25/1/3作者:张旭仟版权所有欢迎盗版3位运算的概念优先级:按位取反(~)优先级2位移(<<、>>)优先级5位与(&)优先级8位异或(^)优先级9位或(|)优先级10结合性:按位取反(~)右结合性其他左结合性说明:1.位运算符中除按位非(~)为单目运算符外,其他均为双目运算符。2.位运算的运算量只能是整型或字符型的数据,不能为实型数据。3.如果参加位运算的运算量是负数,则首先要将其以补码形式表示为二进制数,然后再按相应规则进行运算。25/1/3作者:张旭仟版权所有欢迎盗版4按位非(求反)运算:~功能:对参与运算的数的各二进位按位求反,即将0变1,将1变0。例如:~025是对八进制数25(即二进制数00010101)按位求反,计算方法如下:0000000000010101~1111111111101010(八进制数177752)25/1/3作者:张旭仟版权所有欢迎盗版5按位非(求反)运算:~例程#includemain(){inta=3,b=5,c;c=~a&b;printf("c=%d\n",c);}运算结果:c=4运算结果:c=425/1/3作者:张旭仟版权所有欢迎盗版6功能:把“<<”左边的运算数的各二进位全部左移若干位,由“<<”右边的数指定移动的位数运算规则低位补0,高位溢出丢弃。例如:左移运算:<<#includemain(){inta=9;a=a<<1;printf("a=%d\n",a);}运算结果:a=18运算结果:a=1825/1/3作者:张旭仟版权所有欢迎盗版7左移运算:<<说明从上面的例子可以看出,在不损失有效数字的情况下,每左移1位,相当于该数乘以2,左移2位相当于该数乘以2的2次方(4),15<<2,结果为60,即相当于15乘以4。但此结论只适用于该数左移时被溢出舍弃的高位中不包含1的情况。例如:表达式a<<4,是指把变量a的各二进位向左移动4位。如果有语句:a=3(3的二进制00000011),则左移4位相当于3*2^4,结果为:00110000(即十进制48)。25/1/3作者:张旭仟版权所有欢迎盗版8右移运算:>>功能:把“>>”左边的运算数的各二进位全部右移若干位,“>>”右边的数指定移动的位数说明:对于无符号数:右移时高位补零;对于有符号数:正数右移时在高位补0,负数右移时在高位补1。其中左边补0称“算术右移”,左边补1称“逻辑右移”。例如:若a=017,二进制形式为00001111(十进制为15);a>>2运算后,舍弃低2位得到00000011(十进制为3)若a=-5,二进制形式为11111011;a>>2运算后,舍弃低2位得到11111110(十进制为-2)25/1/3作者:张旭仟版权所有欢迎盗版9右移运算:>>例程main(){unsigneda,b;printf("inputanumber:");scanf("%d",&a);b=a>>5;printf("a=%d\tb=%d\n",a,b);}运行结果:inputanumber:255a=255b=7由以上示例可以看出,右移一位相当于除以2,右移n位相当于除以2n。运行结果:inputanumber:255a=255b=7由以上示例可以看出,右移一位相当于除以2,右移n位相当于除以2n。25/1/3作者:张旭仟版权所有欢迎盗版10小练习:1、若有以下程序(2009年9月)intr=8;printf("%d\n",r>>1);输出结果是A)16B)8C)4D)225/1/3作者:张旭仟版权所有欢迎盗版11按位与运算:&运算规则:参加运算的两个数据,按二进制位进行“与”运算。如果两个相应的二进制位都为1,则该位的结果值为1;否则为0。即:0&0=0,0&1=0,1&0=0,1&1=1例:3&500000011(3)&00000101(5)00000001(1)25/1/3作者:张旭仟版权所有欢迎盗版12按位与运算:&按位与的常用功能1:清零若想对一个存储单元置零,只要用一个全0的二进制数与其进行&运算,即可达到清零目的。例:若原存储单元的数为00101011,若要将其全部置为0,只需将其与二进制数00000000进行&运算即可。00101011&000000000000000025/1...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

全国计算机等级考试2C课程第12讲 位运算

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部