[JAVA]์—ฐ์‚ฐ์ž


Contents




์—ฐ์‚ฐ์ž

  • ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€๊ณตํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ๊ธฐํ˜ธ ์ง‘ํ•ฉ
  • ๊ธฐ์กด ๋ฐ์ดํ„ฐ์—์„œ ์—ฐ์‚ฐ์ž๋ฅผ ํ†ตํ•ด ์›ํ•˜๋Š” ๊ฐ’์„ ์–ป๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•œ๋‹ค.
  • ํŠน์ • ์—ฐ์‚ฐ์ž๋ฅผ ์ œ์™ธํ•˜๊ณ ๋Š” ์™ผ์ชฝ์—์„œ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ์—ฐ์‚ฐ์„ ์ง„ํ–‰ํ•œ๋‹ค.
  • ์šฐ์„  ์ˆœ์œ„

    ์ฆ๊ฐ ์—ฐ์‚ฐ์ž -> ์‚ฐ์ˆ  ์—ฐ์‚ฐ์ž -> ๋Œ€์ž… ์—ฐ์‚ฐ์ž -> ๋น„๊ต ์—ฐ์‚ฐ์ž -> ๋…ผ๋ฆฌ ์—ฐ์‚ฐ์ž -> ๋‹จํ•ญ ์—ฐ์‚ฐ์ž



์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š” ์—ฐ์‚ฐ์ž

์ตœ์šฐ์„  ์—ฐ์‚ฐ์ž. - ๋ฉค๋ฒ„ ์—ฐ์‚ฐ์ž
์‚ฐ์ˆ  ์—ฐ์‚ฐ์ž/ - ๋ชซ์„ ๊ตฌํ•จ
% - ๋‚˜๋จธ์ง€ ์—ฐ์‚ฐ์ž(mod ์—ฐ์‚ฐ)
๊ด€๊ณ„ ์—ฐ์‚ฐ์ž๊ฒฐ๊ณผ๊ฐ€ boolean ํƒ€์ž…์œผ๋กœ ๋ฐ˜ํ™˜๋œ๋‹ค.
๋…ผ๋ฆฌ ์—ฐ์‚ฐ์ž&& - and ์—ฐ์‚ฐ์ž. ๋ชจ๋“  ์กฐ๊ฑด์ด true๋ฉด true, ํ•˜๋‚˜๋ผ๋„ false๋ฉด false
|| - or ์—ฐ์‚ฐ์ž. ํ•˜๋‚˜๋ผ๋„ true๋ฉด true
๋Œ€์ž… ์—ฐ์‚ฐ์ž=, +=, *=, -=, ...
๋‹จํ•ญ ์—ฐ์‚ฐ์ž๋ฌธ์ž++, ๋ฌธ์ž--, !, +/-
์ฆ๊ฐ ์—ฐ์‚ฐ์ž++๋ฌธ์ž, --๋ฌธ์ž, -=, ...
์‚ผํ•ญ ์—ฐ์‚ฐ์ž(์กฐ๊ฑดํ•ญ) ? (true ๊ฒฐ๊ณผ) : (false ๊ฒฐ๊ณผ)
๋น„ํŠธ ์—ฐ์‚ฐ์ž~ - Not ์—ฐ์‚ฐ์ž
<<, >>, >>> - shift ์—ฐ์‚ฐ์ž. bit๋ฅผ ํ™”์‚ดํ‘œ ๋ฐฉํ–ฅ์œผ๋กœ ๋ฏธ๋Š” ๊ฒƒ
&, |, ^ -> ^ : Xor ์—ฐ์‚ฐ์ž. ๊ฐ™์œผ๋ฉด false, ๋‹ค์œผ๋ฉด true ๋ฐ˜ํ™˜



ํŠน์ด ์‚ฌํ•ญ

  • ๋Œ€์ž… ์—ฐ์‚ฐ์ž
      byte a = 10;
      a = a + 1;
    

    a๋Š” 1byte์ธ๋ฐ 1์€ 4byte๋ผ์„œ ์—ฐ์‚ฐ๊ฒฐ๊ณผ๋Š” 4byte๋กœ ๋ฐ˜ํ™˜๋œ๋‹ค.
    4byte๋ฅผ 1byte์— ๋Œ€์ž…ํ•˜๋ ค ํ•ด์„œ error ๋ฐœ์ƒ

      byte a = 10;
      a += 1;
    

    ํ•˜์ง€๋งŒ ๋Œ€์ž… ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด 1์„ a์™€ ๋™์ผํ•œ ํƒ€์ž…์œผ๋กœ ํ˜•๋ณ€ํ™˜ํ•ด์„œ ์•Œ์•„์„œ ๊ณ„์‚ฐํ•ด์ค€๋‹ค.


  • ์ฆ๊ฐ ์—ฐ์‚ฐ์ž
      int a = 10;
      int b = a++; // ๋‹จํ•ญ ์—ฐ์‚ฐ์ž
      int c = ++a; // ์ฆ๊ฐ ์—ฐ์‚ฐ์ž
        
      a = 12, b = 10, c = 12
    
    • ์ฆ๊ฐ ์—ฐ์‚ฐ์ž๊ฐ€ ๋Œ€์ž… ์—ฐ์‚ฐ์ž๋ณด๋‹ค ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋†’๋‹ค.
    • ๋‹จํ•ญ ์—ฐ์‚ฐ์ž๊ฐ€ ๋Œ€์ž… ์—ฐ์‚ฐ์ž๋ณด๋‹ค ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋‚ฎ๋‹ค.

      ์ฆ๊ฐ ์—ฐ์‚ฐ์ž -> ๋Œ€์ž… ์—ฐ์‚ฐ์ž(=) -> ๋‹จํ•ญ ์—ฐ์‚ฐ์ž


  • ๋…ผ๋ฆฌ ์—ฐ์‚ฐ์ž์˜ short circuit evalution
    1. ๋…ผ๋ฆฌ ์—ฐ์‚ฐ์ž๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์ „์ฒด๋ฅผ ๋‘ ๊ฐœ๋กœ ๋‚˜๋ˆˆ๋‹ค.
       bo = a++ > 0 || 1 < ++b * d-- / ++c;
      
       1. a++ > 0 
       2. 1 < ++b * d-- / ++c
      
    2. ์ฒซ๋ฒˆ์งธ ์‹์˜ ๊ฒฐ๊ณผ๊ฐ€ ์ „์ฒด ๊ฒฐ๊ณผ์— ์˜ํ–ฅ์„ ์ค€๋‹ค๋ฉด ์ตœ์†Œ์˜ ํ–‰์œ„๋งŒ ํ•˜๊ณ  ์ข…๋ฃŒํ•œ๋‹ค.
      • && -> A && B ์—์„œ A๊ฐ€ false๋ฉด ์ „์ฒด ๊ฒฐ๊ณผ๋Š” ๋ฌด์กฐ๊ฑด false์ด๋ฏ€๋กœ B๋ฅผ ์‹คํ–‰ํ•˜์ง€ ์•Š๋Š”๋‹ค.
      • || -> A && B ์—์„œ A๊ฐ€ true๋ฉด ์ „์ฒด ๊ฒฐ๊ณผ๋Š” ๋ฌด์กฐ๊ฑด true ์ด๋ฏ€๋กœ B๋ฅผ ์‹คํ–‰ํ•˜์ง€ ์•Š๋Š”๋‹ค.


  • ~ Not ์—ฐ์‚ฐ์ž
      byte a = 10; // 00001010
      ~a;          // 11110101
    


  • <<, >>, >>> shift ์—ฐ์‚ฐ์ž
    • ๋ฐ€๋ฆฐ ๋น„ํŠธ๋Š” ๋ถ€ํ˜ธ ๋น„ํŠธ๋กœ ์ฑ„์šด๋‹ค. ์–‘์ˆ˜๋Š” 0, ์Œ์ˆ˜๋Š” 1 ```java byte a = 10; // 00001010 a ยซ= 2; // 001010_ _ -> 00101000 // a๋Š” 40

    byte b = -1; // 11111111 bย ยป= 2; // _ _ 111111 -> 11111111 // b๋Š” -1 ```

  • &, |, ^ ์—ฐ์‚ฐ์ž
      byte a = 10;
      a = a & 3; 
      // 10 = 00001010
      // 3  = 00000011
      //   => 00000010
      a = 2
    
      byte b = 10;
      b = b | 3;
      // 10 = 00001010
      // 3  = 00000011
      //   => 00001011
      b = 11
    
      byte c = 10;
      c = c ^ 3;
      // 10 = 00001010
      // 3  = 00000011
      //   => 00001001
      c = 9
    


  • System.out.print์—์„œ์˜ ์‚ฐ์ˆ  ์—ฐ์‚ฐ์ž +
    • 1+2=3์„ ์ถœ๋ ฅํ•˜๊ณ  ์‹ถ์–ด์„œ ์œ„์™€ ๊ฐ™์ด ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๊ณ  ์‹คํ–‰ํ•˜๋ฉด 46=2 ์ด ๊ฒฐ๊ณผ๋กœ ๋ฐ˜ํ™˜๋œ๋‹ค.
        int a = 1, b = 2; char operator = +;
        int result = a + b;
      
        System.out.println(a + operator + b + "=" + result);
      

      int(a, b), char(operator)๋Š” ๋ชจ๋‘ ์ •์ˆ˜ํ˜•์ด๋ผ์„œ + ์—ฐ์‚ฐ์ž๋ฅผ ๋งŒ๋‚˜๋ฉด์„œ 1 + 43(ASCIIcode๊ฐ’) + 2๊ฐ€ ์‹คํ–‰๋˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.
      ์›ํ•˜๋Š” ๊ฒฐ๊ณผ๋ฅผ ์ถœ๋ ฅํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋ฉด ๋œ๋‹ค.

        // ๋ฐฉ๋ฒ• 1
        System.out.printf("%d %s %d = %d", a, operator, b, result);
        // ๋ฐฉ๋ฒ• 2 - ์—ฐ์‚ฐ์ž๋กœ ""์™€ ์ •์ˆ˜๋ฅผ ๋”ํ•˜๋ฉด ๋ฌธ์ž์—ด์ด ๋œ๋‹ค.
        System.out.println("" + a + operator + b + "=" + result);
      





ยฉ 2022. by Yejin Ha

Powered by JihyunRyu