欢迎来到天天文库
浏览记录
ID:50990397
大小:38.52 KB
页数:9页
时间:2020-03-08
《c语言位运算说明加举例.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、请记住:计算机存储的是源码但是在运算的时候使用补码进行运算-89按两字节来运算先得到二进制的数0x59-b01011001源码1000000001011001反码符号位不变,其他位按位取反1111111110100110补码+11111111110100111再把这个数取回源码先得到反1000000001011000再得到补+1得到源1000000001011001&按位与逻辑上这个符号与&&相似(全是真才为真)0100100001101001相&得到0100100087&-23得到0x570000000001010
2、111-23的补码为0x17-b0001011110000000000101111111111111101000==反码1111111111101001==补码000000000101011111111111111010010000000001000001==最后得到的是这个
3、按位或逻辑跟这个
4、
5、符号相似(有一个为真就为真)1010101011101100相
6、得到1110111056
7、-140x380000000000111000-14-b000011101000000000001110111111111111000
8、111111111111100100000000000111000111111111111001011111111111110101000000000000101==取反1000000000000110==这是得到的源码符号为不变这是-6~按位取反逻辑跟!相似对一个数取反得到的是它的相反数在减1~500000101111110101000010110000110-6~3==-4~(-5)==40000001111111100取反这个是补码10000011得到反码10000100源码000001011111101011
9、111011这里是取反+100000100^异或不同为一相同为零0010110000110010^0001111018^-320x1200000000000100101000000000100000-3200000000000100101111111111100000^-32的补码1111111111110010得到的这个也是补码10000000000011011000000000001110这个是源码计算a=a^bb=a^ba=a^ba=-17b=30a=a^b1000000000010001-17源码111111
10、1111101111补码00000000000111101111111111110001这是补码b=a^b1111111111110001新A00000000000111101111111111101111新Ba=a^b111111111111000111111111111011110000000000011110301000000000010001-17这是对新B取反得到ayub=o_a^o_b;n_b=ayub^b==o_a;n_a=a^b==ayub^n_b==ayub^o_a==o_b;上面ayub的意思是a
11、^b的区别<<左移8<<200000000000010000000000000001000最前面的两位被取消掉后面的两位补零0000000000100000得到321<<10000000000000001000000000000001022<<2000000000000001000000000000010004-3<<3100000000000001111111111111111001111111111111101111111111110100010000000000101111000000000011000-24左
12、移一位乘2两位乘4三位乘8>>右移大多数情况下正数右移一位最前一位补0负数最前面一位补1-2>>1100000000000001011111111111111011111111111111110这是补码1111111111111111补码向左移一位1000000000000001-1点亮某一位用
13、如:0--31位01110011110010000000000000000100
14、0111001111000100这样第2位就置一了不影响其它位a
15、=4;a
16、=1<<2;a
17、=1<18、清0看看某一位是0还是1if(a&1<
18、清0看看某一位是0还是1if(a&1<
此文档下载收益归作者所有