《位运算及应用》PPT课件

《位运算及应用》PPT课件

ID:45172412

大小:1.43 MB

页数:21页

时间:2019-11-10

《位运算及应用》PPT课件_第1页
《位运算及应用》PPT课件_第2页
《位运算及应用》PPT课件_第3页
《位运算及应用》PPT课件_第4页
《位运算及应用》PPT课件_第5页
资源描述:

《《位运算及应用》PPT课件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、Bitwise Operation位运算及应用程序中的所有数在计算机内存中都是以二进制的形式储存的。位运算就是直接对整数在内存中的二进制位进行操作6(10)110(2)11(10)1011(2)......0110......1011and/&00102(10)10(2)(1)什么是位运算a&b    aandb a

2、b   aorb a^b   axorb ~a    nota a<>b  ashrbCP(2)位运算的操作符定义两个符号#和@,这两个符号互为逆运算也就是说(x#y)@y=xx<-x#y y

3、<-x@y x<-x@ya=a+b; b=a-b; a=a-b;a:=axorb;a=a^b; b:=axorb;b=a^b; a:=axorb;a=a^b;(3)位运算的一个简单运用var a:word; begin   a:=100;   a:=nota;   writeln(a); end.#include intmain() {     unsignedshorta=100;     a=~a;     printf("%d",a);         return0; }(4)not~操作...000

4、010110...001011000a:=ashl2;a=a<<2;a=10110(2);a=54465(10);a=10110(2);a=54465(10);(5)shlshr<<>>去掉最后一位(101101->10110)        xshr1在最后加一个0        (101101->1011010)      xshl1在最后加一个1        (101101->1011011)      xshl1+1把最后一位变成1(101100->101101)          xor1把最后一位变成0(101101

5、->101100)          xor1-1最后一位取反(101101->101100)          xxor1把右数第k位变成1(101001->101101,k=3)     xor(1shl(k-1))把右数第k位变成0(101101->101001,k=3)     xandnot(1shl(k-1))右数第k位取反(101001->101101,k=3)     xxor(1shl(k-1))取末三位(1101101->101)           xand7取末k位(1101101->1101,k=5)  

6、    xand(1shlk-1)取右数第k位(1101101->1,k=4)       xshr(k-1)and1把末k位变成1          (101001->101111,k=4)      xor(1shlk-1)末k位取反(101001->100110,k=4)     xxor(1shlk-1)把右边连续的1变成0    (100101111->100100000)   xand(x+1)把右起第一个0变成1(100101111->100111111)   xor(x+1)把右边连续的0变成1    (11011

7、000->11011111)      xor(x-1)取右边连续的1        (100101111->1111)       (xxor(x+1))shr1去掉右起第一个1的左边(100101000->1000)        xand(xxor(x-1))(6)位运算的常见变换操作(7)位运算的简单运用同样假设x是一个32位整数。我们需要查找x在二进制下,1的个数。比如,初始时x为108,那么最后c就变成了4,它表示108的二进制中有4个1。programfind;var  i,x,c:longint; begin   

8、readln(x);   c:=0;   fori:=1to32do  begin       c:=c+xand1;       x:=xshr1;   end;   writeln(c);end.intmain(){intx,c=0;scanf("%d",&x);for(i=1;i<=32;i++){if(x&1==1)c++;x=x>>1;}printf("%d",c);return0;}...001101100108(10)同样假设x是一个32位整数。经过下面5次赋值后,x的值就是原数的二进制表示中数字1的个数。x:=

9、(xand$55555555)+((xshr1)and$55555555); x:=(xand$33333333)+((xshr2)and$33333333); x:=(xand$0F0F0F0F)+((xshr4)and$0F0F0F0F); x

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。