首页 > 代码库 > 位运算
位运算
===========================================
******反码和取反不同(区别:反码符号位不变,取反符号位也变)******
===========================================
【~-5=4】
-5原码:10000000 00000000 00000000 00000101
-5反码:11111111 11111111 11111111 11111010
-5补码(=反码+1):11111111 11111111 11111111 11111011
-5补码取反:00000000 00000000 00000000 00000100 (得到结果为补码)
因为正数补码=反码=原码,所以原码也是:00000000 00000000 00000000 00000100
*注*:负数反码为符号位不变,其他位取反;
负数补码=反码+1;
【-3^3=-2】
-3原码:10000000 00000000 00000000 00000011
-3反码:11111111 11111111 11111111 11111100
-3补码:11111111 11111111 11111111 11111101
3补码:00000000 00000000 00000000 00000011
------------------【(-3^3)补码异或】--------------------
异或(补码):11111111 11111111 11111111 11111110
异或(反码=补码-1):11111111 11111111 11111111 1111101
异或(原码):10000000 00000000 00000000 00000010
【移位运算:都必须先求出补码再移位运算(在计算机运算中,都是以补码的方式运算的),溢出用符号位补全,符号位为0,补0;符号位为1,补1】
1>>2 == 0;
-1>>2 == -1;
位运算