下载此文档

计算机计算机二级C语言程序设计 第11讲.ppt


文档分类:IT计算机 | 页数:约11页 举报非法文档有奖
1/ 11
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/ 11 下载此文档
文档列表 文档介绍
第11讲位运算
为了节省内存空间,在系统软件中常将多个标志状态简单地组合在一起,存储到一个字节(或字)中。C语言是为研制系统软件而设计的,所以她提供了实现将标志状态从标志字节中分离出来的位运算功能。
所谓位运算是指,按二进制位进行的运算。
位运算及其运算符
──& (1)格式:x&y (2)规则:对应位均为1时才为1,否则为0:3&9=1。
例如,3&9=1: 0011
& 1001
────
0001=1
──| (1)格式:x|y (2)规则:对应位均为0时才为0,否则为1:3|9=11。
例如,3|9=11: 0011
| 1001
────
1011=11
──^
(1)格式:x^y
(2)规则:对应位相同时为0,不同时为1:3^9=10。
──~
(1)格式:~x
(2)规则:各位翻转,即原来为1的位变成0,原来为0的位变成1。
──<<
(1)格式:x<< 位数
(2)规则:使操作数的各位左移,低位补0,高位溢出:5<<2=20。
──>>
(1)格式:x>>位数
(2)规则:使操作数的各位右移,移出的低位舍弃;高位:
1)对无符号数和有符号中的正数,补0;
2)有符号数中的负数,取决于所使用的系统:补0的称为“逻辑右移”,补1的称为“算术右移”。例如,20 >> 2=5。
说明:
(1)x、y和“位数”等操作数,都只能是整型或字符型数据。除按位取反为单目运算符外,其余均为双目运算符。
(2)参与运算时,操作数x和y,都必须首先转换成二进制形式,然后再执行相应的按位运算。
例如,5<<2=20:0101 → 10100,20 >> 2=5:10100 → 00101。
说明

除按位取反运算外,其余5个位运算符均可与赋值运算符一起,构成复合赋值运算符: &=、|+、^=、<<=、>>=
──低字节对齐,短数的高字节按最高位补位:
(1)对无符号数和有符号中的正数,补0;
(2)有符号数中的负数,补1。
2007年4月
1、main()
{unsigned char a=2,b=4,c=5,d;
d=a|b; d&=c; printf(“%d\n”,d);}
A) 3 B) 4 C) 5 D) 6
2、int a=1,b=2,c;
c=a^ (b<<2);
A) 6 B) 7 C) 8 D) 9
2007年9月
1、有以下程序
#include<>
main( )
{int a=1,b=2,c=3,x;
x=(a^b)&c; printf("%d\n",x);
}
程序的运行结果是
A)0 B)1 C)2 D)3
2008年4月
1、变量a中的数据用二进制表示的形式是01011101,变量b中的数据用二进制表示的形式是11110000,若要求将a的高4位取反,低四位不变,所要执行的运算是
A)a^b B)a|b C)a&b D)a<<4
2008年9月
1、有以下程序
#include <>
main( )
{ char a=4;
printf("%d\n", a=a<<1);
}
程序的运行结果是
A)40 B)16 C)8 D)4
2009年3月
1、有以下程序
#include <>
main()
{ int a=5, b=1, t;
t=(a<<2)|b; printf("%d\n", t);
}
程序运行后的输出结果是
A)21 B)11 C)6 D)1

计算机计算机二级C语言程序设计 第11讲 来自淘豆网www.taodocs.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数 11
  • 收藏数 0 收藏
  • 顶次数 0
  • 上传人 企业资源
  • 文件大小 0 KB
  • 时间2012-01-31
最近更新