1 按位与置0、按位或置1,按位异或取反
#include <stdio.h>void printBinary(unsigned a){printf("\n%10u %X ",a,a);for(int i=31;i>=0;i--){if((i+1)%4 == 0)printf(" ");if((a>>i & 1) == 1)printf("1");elseprintf("0");}}void test(){unsigned data = http://www.fzline.cn/sh/0x12345678;// 305419896 // dec// 0001 0010 0011 0100 0101 0110 0111 1000 // binaryprintBinary(data);printf(" 原数据/n");unsigned mask = 0xFFFF0000;printBinary(mask);printf(" 掩码/n");unsigned a = data & mask;printBinary(a);printf(" 按位与&,后16位置0/n");unsigned b = data | mask;printBinary(b);printf(" 按位或| , 前16位置1/n");unsigned c = data ^ mask;printBinary(c);printf(" 按位异或^ , 前16位取反/n");}int main(){test();getchar();return 0;}/* 305419896 123456780001 0010 0011 0100 0101 0110 0111 1000 原数据4294901760 FFFF00001111 1111 1111 1111 0000 0000 0000 0000 掩码 305397760 123400000001 0010 0011 0100 0000 0000 0000 0000 按位与&,后16位置04294923896 FFFF56781111 1111 1111 1111 0101 0110 0111 1000 按位或|,前16位置13989526136 EDCB56781110 1101 1100 1011 0101 0110 0111 1000 按位异或^,前16位取反*/2 按位运算与算术运算2.1 二进制无进位加法
按位异域
0
0
1
1
^
0
1
0
1
0
1
1
0
2.2 二进制加法的进位
按位与
0
0
1
1
【置 置喙】&
0
1
0
1
0
0
0
1
2.3 整型乘除
2.3.1 整型与一个2的某次幂相乘
用移位实现乘除法运算
a=a<<3; // a=a*(2^3);
b=b>>3; // b=b/(2^3);
2.3.2 整型与一个非2的某次幂相乘
a = a<<3+a; // a=a*9→a=a*(a^3+1)
3 整型按位乘法
移位相加实现二进制乘法:
移位、相加:
10110011*1101 // 179*13
= 179<<0*1+179<<1*0+179<<2*1+179<<3*1
= 0000 0000 0000 0000 1001 0001 0111 //2327
4 整型按位除法
2进制完成除法运算就是移位相减,比如1011011除以1110(91/14)顺序如下:
被除数
1
0
1
1
0
1
1
除数左对齐
1
1
1
0
除数对齐到小于被除数的位置
被除数
1
0
1
1
0
1
1
1
1
1
0
商
1
0
0
余数
1
0
0
0
1
1
余数继续相除:
被除数
1
0
1
1
0
1
1
除数
1
1
1
0
商
1
0
0
余数
1
0
0
0
1
1
除数
1
1
1
0
商
1
1
0
余数
1
1
1
1011011 / 1110 = 110 + 111 // 91/14 = 6+7
1011011 = 1110 * 0000110 + 111 // 91 = 14 * 6 + 7
-End-
推荐阅读
- 怎么样选择家装设计师 怎么样选择家装设计师呢
- 梦到坟上烧纸
- 梦到发洪水后又退去 梦到发洪水后又退去的含义
- 梦到哪吒被黑气缭绕 梦到哪吒被黑气缭绕吓醒
- 梦到水上乐园溺水 梦到水上乐园溺水了
- 梦到灵堂和棺材 梦到灵堂和棺材是什么预兆
- 梦到房子潮湿 梦到房子潮湿是什么意思
- 梦到大白龙 梦到大白龙是什么预兆
- 关于夫妻如何打理财产 关于夫妻如何打理财产的规定
- 电动汽车要驾照吗? 电动汽车要驾照吗 四轮