Java学習ノート第05期——Java基礎文法Part 4


Java基礎文法Part 4
私のノート共有に関するブログでは、MDノートファイルを別途公開し、友达がダウンロードして勉強するのに便利です.(ファンはダウンロード可能)今期ノートファイルダウンロードアドレス:https://download.csdn.net/download/lbwnbnbnbn/15225075
Ayo皆さんこんにちはTomatoooです.これは私のJava学習ノートの第4期です.あまり話をしないでテーマを挿入します.
えんざん
せいすうえんざん
Java整数演算は四則演算の原則に従い、括弧などを用いることができる.
整数は演算時に整数部分だけが残り、想定通り四捨五入されるわけではありません
余剰演算使用%
例:
int a = 66666%123 //    66666/123   

特に注意:整数の除算は、除算が0の場合に実行時にエラーが発生しますが、コンパイルではエラーは発生しません.
あふれ出る
前述したように、整数には範囲制限があり、計算結果が範囲を超えているとオーバーフローし、オーバーフローはエラーが発生せず、予想外の結果しか得られません.
自増/自減
Javaは、1つの整数に対して1を加算および1を減算することができる++演算および--演算を提供する.
注意:++は前と後で計算結果が異なり、++nは1を加えてnを参照し、n++はnを先に参照して1を加えることを示す.
シフト演算
コンピュータでは、整数は常にバイナリ形式で表されます.
例えば、int型の整数7は、4バイトで表されるバイナリを以下のように用いる.
00000000 00000000 00000000 00000111

整数をシフト演算できます.整数7を1ビット左にシフトすると整数14が得られ、左にシフトすると整数28が得られる
例:
int n = 7;       // 00000000 00000000 00000000 00000111 = 7
int a = n << 1;  // 00000000 00000000 00000000 00001110 = 14
int b = n << 2;  // 00000000 00000000 00000000 00011100 = 28
int c = n << 28; // 01110000 00000000 00000000 00000000 = 1879048192
int d = n << 29; // 11100000 00000000 00000000 00000000 = -536870912

29ビット左シフトでは,最高位が1となったため,結果は負数となった.
同様に、右シフト記号は>>
シンボルビットにかかわらず、右シフト後の高位は常に>>>を補うことを特徴とするシンボルレス右シフト演算もある.そのため、負の数を0右シフトすると、最高位の>>>が0になったため、正数になる.1byteのタイプをシフトすると、まずshortに変換してからシフトします.
よく見ると、左に移動するのは実際には絶えず×2,右シフトは実際には絶えず÷2である.
ビット演算
、または、非和異和の演算
  • と演算:2つの数が同時にintでなければならず、結果は1
  • である.
  • または演算:いずれかが1である限り、結果は1
  • である.
  • 非演算:10
  • を交換する.
    例:
    n = ~0; // 1
    n = ~1; // 0
    
  • 異或演算:2つの数が異なる場合、結果は1、そうでない場合は1
  • である.
    例:
    n = 0 ^ 0; // 0
    n = 0 ^ 1; // 1
    n = 1 ^ 0; // 1
    n = 1 ^ 1; // 0
    

    2つの整数に対してビット演算を行い、実際にはビットごとに整列し、各ビットを順次演算します.
    public class Main {
         
        public static void main(String[] args) {
         
            int i = 167776589; // 00001010 00000000 00010001 01001101
            int n = 167776512; // 00001010 00000000 00010001 00000000
            System.out.println(i & n); // 167776512
        }
    }
    

    えんざんゆうせんど
    Javaの計算式では、演算の優先度が高い順に次のようになります.
  • 0
  • () ! ~ ++
  • -- * /
  • % +
  • - << >>
  • >>>
  • &
  • | += -= *=

  • 全部覚える必要はありません.正しいことを確認するにはカッコをつければいいです.
    ここまで見てきたんだから、注目しないか(~ ̄▽ ̄)~