预览加载中,请您耐心等待几秒...
1/4
2/4
3/4
4/4

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

位运算 13.1位运算符 位运算符的简介 表13.1位运算符表 位运算符含义位运算符含义&按位与~按位取反|按位或<<左移^按位异或>>右移 位运算符的应用 #include<stdio.h> unsignedshortCirMove(unsignedshortvalue,intn) { unsignedshortresult; if(n>0)result=value<<(16-n)|value>>n; else {n=-n; result=value>>(16-n)|value<<n; } returnresult; } voidmain() { unsignedshortvalue,move_value; intn; printf("请输入一个十进制数:"); scanf("%hd",&value); printf("你输入的数为:%hd,十六进制为:%hx\n",value,value); printf("请输入要移位的位数(正数右移,负数左移):"); scanf("%d",&n); move_value=CirMove(value,n); if(n>0) printf("右移结果为:%hd,十六进制为:%hx\n",move_value,move_value); else printf("左移结果为:%hd,十六进制为:%hx\n",move_value,move_value); } 13.2位段 图13.1位段成员所占存储空间示意图 structpacked_x {unsignedshorts1:3; unsignedshorts2:8; unsignedshorts3:2; shorti; }; structpacked_xdata2; 图13.2data2各成员所占存储空间示意图 structpacked_x {unsignedshorts1:3; unsignedshorts2:8; unsignedshorts3:2; unsignedshort:3; shorti; }; structpacked_y {unsignedshorts1:5; unsignedshorts2:5; unsignedshort:0; unsignedshorts3:4; }; #include<stdio.h> structpacked_x {unsignedshorts1:3; unsignedshorts2:8; unsignedshorts3:2; unsignedshort:3; shorti; }data; voidmain() {data.s1=9;data.s2=8;data.s3=3; data.i=data.s1+data.s2+data.s3; printf("data.s1=%d,data.s2=%d,data.s3=%d\n",data.s1,data.s2,data.s3); printf("data.i=%d\n",data.i); } 习题13 voidmain() {charx=040; printf("%d\n",x=x<<1); } voidmain() {intx=35;charz='A'; printf("%d\n",(x&15)&&(z<'a')); } voidmain() {inta=5,b=6,c=7,d=8,m=2,n=2; printf("%d\n",(m=a>b)&(n=c>d)); }