一调卑、位運算符(&抡砂、|、^恬涧、>>注益、<<)
(1)&:只有參加運算(二進(jìn)制運算)的兩位都為1,運算的結(jié)果才為1溯捆,否則為0
例如:? ?int? a=2丑搔;? ? ? a的二進(jìn)制為:10;
? ? ? ? ? ? ?int? b=3 提揍;? ? ? ? b的二進(jìn)制為:11啤月;
? ? ? ? ? ? ?a&b=2;? ? ? ? ? ? ?a&b的二進(jìn)制結(jié)果為10劳跃;??
(2)|:只有參加運算(二進(jìn)制運算)的兩位都為0谎仲,運算的結(jié)果才為0,否則為1
例如:? ?int? a=2刨仑;? ? ? a的二進(jìn)制為:10郑诺;
? ? ? ? ? ? ?int? b=3 夹姥;? ? ? ? b的二進(jìn)制為:11;
? ? ? ? ? ? ?a&b=3间景;? ? ? ? ? ? ?a&b的二進(jìn)制結(jié)果為11佃声;??
(3):只有參加運算(二進(jìn)制運算)的兩位都不同,運算的結(jié)果才為1倘要,否則為0
例如:? ?int? a=2圾亏;? ? ? a的二進(jìn)制為:10;
? ? ? ? ? ? ?int? b=3 封拧;? ? ? ? b的二進(jìn)制為:11志鹃;
? ? ? ? ? ? ?a&b=1;? ? ? ? ? ? ?a&b的二進(jìn)制結(jié)果為01泽西;??
*(4)>>:右移預(yù)算符曹铃,通過二進(jìn)制位數(shù)向右移動來得到新的數(shù)。
例如:? ? ?int? ? ?a=36;? ? ? ?// a的二進(jìn)制為0010 0100
? ? ? ? ? ? ? ?int? ? ? b=a>>2;? ?//a右移 2位為? 0000 1001?即9捧杉,此時b的值為9
(5)<<:左移預(yù)算符陕见,通過二進(jìn)制位數(shù)向左移動來得到新的數(shù)。
例如:? ? ?int? ? ?a=4;? ? ? ?// a的二進(jìn)制為0000 0100
? ? ? ? ? ? ? ?int? ? ? b=a<<2;? ?//a右移 2位為? 0001 0000 即16味抖,此時b的值為16
總結(jié):>>右移運算符评甜,右移多少位,新的值為原來的值除以2的n次冪仔涩;<<左移運算符忍坷,左移多少位,新的值為原來的值乘以2的n次冪(n為位移的位數(shù))熔脂。
二佩研、單目運算符(++、--)
(1)++:自增分為前自增和后自增霞揉,就是自身加1旬薯。
例如:? int a=2;
? ? ? ? ? ?int? ?b=a++;? ?//后自增,此時先把a的值賦值給b,b的值為2零聚,然后a再加1袍暴,a此時的值為3;
? ? ? ? ? ?int? ?c=++b;? ? ?//前自增隶症,此時先把b的值加1政模,b此時的值為3,然后賦值給c,c的值為3蚂会;
(2)--:自減分為前自減和后自減淋样,就是自身減1。
例如:? int a=2;
? ? ? ? ? ?int? ?b=a--;? ?//后自減胁住,此時先把a的值賦值給b,b的值為2趁猴,然后a再減1刊咳,a此時的值為1;
? ? ? ? ? ?int? ?c=--b;? ??//前自減儡司,此時先把b的值減1娱挨,b此時的值為1,然后賦值給c,c的值為1捕犬;