Java一般演算子の整理


本文は学習中の総括で、転載を歓迎しますが、出典を明記してください.http://blog.csdn.net/pistolove/article/details/44724267
本文は主にJavaでよく見られる演算子を紹介し,論理演算子とビット演算子に重点を置いた.あなたに役に立つことを願っています.
算術演算子
  (1)一元演算子:      プラス(+)、マイナス(-)、プラス1(++)、マイナス1(-)の4個.    プラス1、マイナス1演算子では、数値タイプの変数のみが許可され、式では使用できません.プラス1、マイナス1演算子は、変数の前(例えば++i)に置くこともできるし、変数の後(例えばi++)に置くこともできる.両者の違いは、変数の前(例えば++i)に置くと、変数値はまず1またはマイナス1を加え、その後、他の対応する操作(主に付与操作)を行うことである.変数の後(i++など)に置くと、他の対応する操作を先に行い、変数値に1を加算または減算します.      例:      int i=6,j,k,m,n;     j = +i;    //元の値、すなわちj=6をとる    k = -i;    //負の値、すなわちk=-6をとる    m = i++;    //まずm=i,さらにi=i+1,すなわちm=6,i=7    m =++i;    //まずi=i+1,さらにm=i,すなわちi=7,m=7    n = j--;    //まずn=j,さらにj=j-1,すなわちn=6,j=5    n = --j;    //まずj=j-1,さらにn=j,すなわちj=5,n=5    一元演算子とその前後のオペランドの間にスペースは許されません.そうしないと、コンパイル中にエラーが発生します.二元演算子の使用は少なく、しばらく議論しない.
関係演算子
リレーショナル演算子は、2つの数値間のサイズを比較するために使用され、その演算結果は論理タイプの数値です.関係演算子は、等しい(==)、等しくない(!=)、より大きい(>)、より大きい(>=)、より小さい(<)、より小さい(<=).簡単なので、ここでも議論しません.
論理演算子
 論理演算子は、オペランドのデータ型が論理型であることを要求し、その演算結果も論理型値である.論理演算子には、論理と(&&)、論理または(|)、論理非(!)、論理異または(^)、論理と(&)、論理または(|)があります.
	/**
	 * 
	 * @author liqq
	 */
	@Test
	public void testLogic() {
		// &&     (  )   a&&b  a false ,     b   false
		System.err.println(false && true); // false
		System.err.println(false && false); // false
		System.err.println(true && true); // true
		System.err.println();

		// ||    (  )   a||b  b true ,     b   true
		System.err.println(false || true); // true
		System.err.println(true || true); // true
		System.err.println(false || false); // false
		System.err.println();

		// !   
		System.err.println(!true); // false
		System.err.println(!false); // true
		System.err.println();

		// ^      (   false,   true)
		System.err.println(false ^ true); // true
		System.err.println(true ^ true); // false
		System.err.println(false ^ false); // false
		System.err.println();

		// &    (   )   a&b  a false ,     b   false
		System.err.println(false & true); // false
		System.err.println(true & true); // true
		System.err.println(false & false); // false
		System.err.println();

		// |    (   )   a|b  a true ,      b   true
		System.err.println(false | true); // true
		System.err.println(true & true); // true
		System.err.println(false & false); // false
		System.err.println();
	}

ビット演算子
    ビット演算はバイナリビット単位で行われ、その操作数も演算結果も整数値である.      ビット演算子は、ビットと(&)、ビットまたは(|)、ビット非(~)、ビット異または(^)、右シフト(>)、左シフト(<)、0充填の右シフト(>>>>>>)の7つです. 
	/**
	 * @author liqq
	 */
	@Test
	public void testBit() {
		//   (&)       
		System.err.println(1 & 0); // 0
		System.err.println(1 & 1);// 1
		System.err.println(0 & 0);// 0
		System.err.println();

		//   (|)      
		System.err.println(1 | 0);// 1
		System.err.println(1 | 1);// 1
		System.err.println(0 | 0);// 0
		System.err.println();

		//   (~)
		System.err.println(~0); // -1
		System.err.println(~1);// -2
		System.err.println();

		//    (^)    0,   1
		System.err.println(1 ^ 0);// 1
		System.err.println(1 ^ 1);// 0
		System.err.println(0 ^ 1);// 1
		System.err.println();

		//   (>>)      ,         
		System.err.println(2 >> 1);// 1
		System.err.println(2 >> 2);// 0
		System.err.println(8 >> 1);// 4
		System.err.println(8 >> 2);// 2
		System.err.println();

		//   (<<)      ,        
		System.err.println(2 << 1);// 4
		System.err.println(2 << 2);// 8
		System.err.println(8 << 1);// 16
		System.err.println(8 << 2);// 32
		System.err.println();

		// 0     (>>>)   ,       0  
		System.err.println(8>>>2);//2  
		System.err.println(-14 >>> 2); //1073741820
		/*(      11111111 11111111 11111111 11110010),
		         1073741820 (      00111111 11111111 11111111 11111100)*/
		System.err.println();
	}