#include<Windows.h>
#include <iostream>
#include <assert.h>
using namespace std;
void main()
{
int va = 3032%1000;
va = 3032/1000;
int //a&b 與運算,會返回a和b中,每個位(位元,即二進位)最小的值;
value = 1&1; //1
value = 1&0; //0
value = 0&1; //0
value = 0&0; //0
value = 3&3; //3 二進位計算:11=11&11
value = 3&2; //2 二進位計算:10=11&10
value = 2&3; //2 二進位計算:10=10&11
value = 5&6; //4 二進位計算:100=101&110
value = 213&73; //65
//a|b 或運算,會返回a和b中,每個位(位元)最大的值;
value = 1|1; //1
value = 1|0; //1
value = 0|1; //1
value = 0|0; //0
value = 3|3; //3 二進位計算:11=11 | 11
value = 3|2; //3 二進位計算:11=11 | 10
value = 2|3; //3 二進位計算:11=10 | 11
value = 5|6; //7 二進位計算:111=101 | 110
value = 213|73; //221
//a^b 異或運算,會返回a和b中,每個位(位元)是否不同的(真假)bool值(不同1,相同0);
value = 1^1; //0 二進位計算:0=1^1
value = 1^0; //1 二進位計算:1=1^0
value = 0^1; //1 二進位計算:1=0^1
value = 0^0; //0 二進位計算:0=0^0
value = 5^6; //3 二進位計算:011=101^110
value = 213^73; //156
//~按位取反運算,~是單目運算子。其功能是將運算元中的二進位位0變成1,1變成0.
value = ~0; //-1
value = ~1; //-2
value = ~2; //-3
value = ~3; //-4
value = ~4; //-5
value = ~5; //-6
value = ~-7; //6
value = ~100; //-101
// 左移運算 左移運算子“<<”是雙目運算子。其功能把“<< ”左邊的運算數的各二進位全部左移若干位,由“<<”右邊的數指定移動的位元,
// 高位丟棄,低位補0。例如: a<<4 指把a的各二進位向左移動4位。如a=00000011(十進位3),左移4位後為00110000(十進位48)。
// 右移運算右移運算子“>>”是雙目運算子。其功能是把“>> ”左邊的運算數的各二進位全部右移若干位,“>>”右邊的數指定移動的位元。
// 例如:設 a=15,a>>2 表示把000001111右移為00000011(十進位3)。應該說明的是,對於有符號數,在右移時,符號位將隨同移動。當為正數時, 最高位補0,而為負數時,符號位為1,最高位是補0或是補1 取決於編譯系統的規定。Turbo C和很多系統規定為補1。
value = 1<<0; //1
value = 1<<1; //2
value = 1<<2; //4
value = 1<<3; //8
value = 1<<4; //16
value = 1<<5; //32
value = 1<<6; //64
value = 1<<7; //128
value = 1<<8; //256
value = 1<<9; //512
value = 013^063;
value &=29;
system("pasuse");
}