置业顾问岗位职责 置

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 = https://www.juguize.com/b/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-

    推荐阅读