手机网站建设公司,徐州专业网站建设,上虞中国建设银行官网站,设计网站设计公司位运算
注意#xff1a;符号位也遵循这个规则 一、按位与() 运算规则#xff1a;一假则假 int a 0x33;a 0x55;0011 00110101 0101 ----------0001 0001 //0x11
二、按位或(|) 运算规则#xff1a;一真则真 int a 0x33;a |0x55;0011 00110101 0101 |…位运算
注意符号位也遵循这个规则 一、按位与() 运算规则一假则假 int a 0x33;a 0x55;0011 00110101 0101 ----------0001 0001 //0x11
二、按位或(|) 运算规则一真则真 int a 0x33;a |0x55;0011 00110101 0101 |----------0111 0111 //0x77
三、按位取反(~) 运算规则: 真假相对 int a 0x33;a |0x55;0011 0011 ~----------1100 1100 //0xcc
四、按位异或(^) 运算规则相同为0 不同为1同假异真 int a 0x33;a ^ 0x55;0011 00110101 0101 ^----------0110 0110 //0x66 异或运算可用来实现加密
eg:0x55 0x33 (密码)0101 0101 0011 0011 (0x33)---------0110 0110 //0x660011 0011----------0101 0101 //0x55
五、按位左移() 运算规则左边舍弃右边补零 写法数值位数 int a 0x33;a0011 0011a10110 01106 6 //左移一位相当于乘以2
六、按位右移() 运算规则 有符号类型的数据此时右移 最高位 补符号位 //算术右移 无符号类型的数据此时右移 最高位 补0 //逻辑右移 写法数值位数
练习
练习: int a 0xffffffff; 编写程序让所有的偶数位 清0 练习: int a 0x55555555; 编写程序让所有奇数位置1 练习不使用第三方变量实现两个数交换
int a 10;
int b 20;法一a a b; // 10 20 30 //a
b a - b; // 30 - 20 10 //b
a a - b; // 30 - 10 20 //a法二0000 1010 a0001 0100 b
----------0001 1110 0001 0100
----------0000 1010 b0001 1110----------0001 0100 //
a a ^ b; 0001 1110
b a ^ b; 0000 1010
a a ^ b; 0001 0100 练习统计int类型中1的个数
int a 1213; //二进制中1的个数