置(置业顾问岗位职责)

  • 生活
  • 2023-04-19 10:32

1按位与置0、按位或置1,按位异或取反

#include<stdio.h>voidprintBinary(unsigneda){printf(" %10u%X",a,a);for(inti=31;i>=0;i--){if((i+1)%4==0)printf("");if((a>>i&1)==1)printf("1");elseprintf("0");}}voidtest(){unsigneddata=0x12345678;//305419896//dec//00010010001101000101011001111000//binaryprintBinary(data);printf("原数据 ");unsignedmask=0xFFFF0000;printBinary(mask);printf("掩码 ");unsigneda=data&mask;printBinary(a);printf("按位与&,后16位置0 ");unsignedb=data|mask;printBinary(b);printf("按位或|,前16位置1 ");unsignedc=data^mask;printBinary(c);printf("按位异或^,前16位取反 ");}intmain(){test();getchar();return0;}/*3054198961234567800010010001101000101011001111000原数据4294901760FFFF000011111111111111110000000000000000掩码3053977601234000000010010001101000000000000000000按位与&,后16位置04294923896FFFF567811111111111111110101011001111000按位或|,前16位置13989526136EDCB567811101101110010110101011001111000按位异或^,前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

=0000000000000000100100010111//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-

猜你喜欢