二、位运算符

二、位运算符

正数:求取非后的二进制码的补码,就是答案

负数:对取非后的二进制码的求其补码的两个步骤颠倒求出来的,就是答案

操作数为1,结果为0;操作数为0,结果为1

正数

0 0 0 0 0 1 0 1 = 5

~5

1 1 1 1 1 0 1 0

1 0 0 0 0 1 0 1 符号位不变,取反

1 0 0 0 0 1 1 0 符号位不变,末尾加一

~5 = 1 0000110 = -6

负数

1 0 0 0 0 1 0 1 = -5

~(-5)

0 1 1 1 1 0 1 0

0 1 1 1 1 0 1 1 符号位不变,末尾加一

0 0 0 0 0 1 0 0 符号位不变,取反

~(-5) = 0 0000100 = 4

三、测试代码

大家可以复制来验证一下上文说的对不对哈哈

void test()

{

cout << "4 & 5 = " << (4 & 5) << endl;

cout << "-4 & 5 = " << (-4 & 5) << endl;

cout << "-4 & -5 = " << (-4 & -5) << endl<

cout << "4 | 5 = " << (4 | 5) << endl;

cout << "-4 | 5 = " << (-4 | 5) << endl;

cout << "-4 | -5 = " << (-4 | -5) << endl<

cout << "4 ^ 5 = " << (4 ^ 5) << endl;

cout << "-4 ^ 5 = " << (-4 ^ 5) << endl;

cout << "-4 ^ -5 = " << (-4 ^ -5) << endl<

cout << "~5 = " << ~5 << endl;

cout << "~(-5) = " << ~(-5) << endl<

cout << "5<<2 = " << (5 << 3) << endl;

cout << "-5<<2 = " << (-5 << 3) << endl<

cout << "5>>2 = " << (5 >> 2) << endl;

cout << "-5>>2 = " << (-5 >> 2) << endl<

cout << "5<<65 = " << (5 << 65) << endl;

cout << "-5<<65 = " << (-5 << 65) << endl<

cout << "5>>65 = " << (5 >> 10) << endl;

cout << "-5>>65 = " << (-5 >> 10) << endl<

}

如有不足之处,还望指正 [1]。

如果对您有帮助可以点个赞或关注,将会是我最大的动力 ↩︎

🎀 相关推荐

泰国剃度的来历及仪式讲解
365bet官方投注网址

泰国剃度的来历及仪式讲解

📅 09-28 👀 9920
起床气是什么?揭秘起床气的科学解释与解决方法
《天龙八部手游》新区开服等级机制变革 升级速度大不同
365手机版游戏中心官网

《天龙八部手游》新区开服等级机制变革 升级速度大不同

📅 10-30 👀 6130