μλ°μ μ μ 3μ₯: μ°μ°μ(Operator)
[ μΆμ² ]
μλ°μ μ μ:
https://product.kyobobook.co.kr/detail/S000001550352
μλ°μ μ μ μ νλΈ:
https://www.youtube.com/playlist?list=PLW2UjW795-f6xWA2_MUhEVgPauhGl3xIp
1. μ°μ°μ(operator)
1.1 μ°μ°μμ νΌμ°μ°μ
νΌμ°μ°μ(operand) : μ°μ°μμ μ°μ° μν λμ(λ³μ, μμ, 리ν°λ΄, μμ)

μ°μ°μλ νΌμ°μ°μλ‘ μ°μ°μ μννκ³ λλ©΄ νμ κ²°κ³Όκ°μ λ°ννλ€.
1.2 μ(εΌ)κ³Ό λμ μ°μ°μ
μ± 86p. μ°Έκ³
1.3 μ°μ°μμ μ’ λ₯
μ’ λ₯ | μ°μ°μ | μ€λͺ |
---|---|---|
μ°μ μ°μ°μ | + - * / % << >> | μ¬μΉ μ°μ°κ³Ό λλ¨Έμ§ μ°μ°(%) |
λΉκ΅ μ°μ°μ | > < β₯ β€ == β | ν¬κ³ μμκ³Ό κ°κ³ λ€λ¦μ λΉκ΅ |
λ Όλ¦¬ μ°μ°μ | && || ! & | ^ ~ | βκ·Έλ¦¬κ³ (AND)βμ βλλ(OR)βμΌλ‘ 쑰건μ μ°κ²° |
λμ μ°μ°μ | = | μ°λ³μ κ°μ μ’λ³μ μ μ₯ |
κΈ°ν | (type) ?: instanceof | νλ³ν μ°μ°μ, μΌν μ°μ°μ, instanceof μ°μ°μ |
νΌμ°μ°μμ κ°μμ μν λΆλ₯
νΌμ°μ°μμ κ°μλ‘ μ°μ°μλ₯Ό λΆλ₯νκΈ°λ νλλ°, νΌμ°μ°μμ κ°μκ° νλλ©΄ βλ¨ν μ°μ°μβ, λ κ°λ©΄ βμ΄ν μ°μ°μβ, μΈ κ°λ©΄ βμΌν μ°μ°μβλΌκ³ λΆλ₯Έλ€. λλΆλΆμ μ°μ°μλ βμ΄ν μ°μ°μβμ΄κ³ μΌν μ°μ°μλ μ€μ§ β? :β νλ λΏμ΄λ€.

μμ μμλ λ κ°μ μ°μ°μκ° ν¬ν¨λμ΄ μλλ°, λ λ€ κ°μ κΈ°νΈ β-βλ‘ λνλ΄μ§λ§ μμ°ν λ€λ₯Έ μ°μ°μμ΄λ€. μΌμͺ½μ κ²μ βλΆνΈ μ°μ°μβμ΄κ³ μ€λ₯Έμͺ½μ κ²μ βλΊμ μ°μ°μβμ΄λ€. μ΄μ²λΌ μλ‘ λ€λ₯Έ μ°μ°μμ κΈ°νΈκ° κ°μ κ²½μ°λ μλλ°, μ΄λ΄ λλ νΌμ°μ°μμ κ°μλ‘ κ΅¬λΆμ΄ κ°λ₯νλ€.

βλΆνΈ μ°μ°μβλ λ¨ν μ°μ°μλ‘ νΌμ°μ°μκ° β3β ν κ°λΏμ΄μ§λ§ βλΊμ μ°μ°μβλ μ΄ν μ°μ°μλ‘ νΌμ°μ°μκ° β-3βκ³Ό β5β λ κ°μ΄λ€.
μ΄μ²λΌ μ°μ°μλ₯Ό κΈ°λ₯λ³, νΌμ°μ°μμ κ°μλ³λ‘ λλμ΄ λΆλ₯νλ κ²μ κ³§μ΄μ΄ λ°°μ°κ² λ βμ°μ°μμ μ°μ μμβλλ¬Έμ΄κΈ°λ νλ€. μ°μ°μλ§λ€ μ°μ μμκ° λ€λ₯΄μ§λ§, κ°μ μ’ λ₯μ μ°μ°μλ€μ μ°μ μμκ° λΉμ·νκΈ° λλ¬Έμ κ° μ’ λ₯λ³λ‘ μ°μ μμλ₯Ό μΈμ°λ©΄ κΈ°μ΅νκΈ° λμ½λ€.
1.4 μ°μ°μμ μ°μ μμμ κ²°ν©κ·μΉ
μ°μ°μμ κ²°ν©κ·μΉ
νλμ μμ κ°μ μ°μ μμμ μ°μ°μλ€μ΄ μ¬λ¬ κ° μλ κ²½μ°, μ΄λ€ μμλ‘ μ°μ°μ μνν κΉ? μ°μ μμκ° κ°λ€κ³ ν΄μ μ무거λ λ¨Όμ μ²λ¦¬νλ κ²μ μλκ³ λλ¦λλ‘μ κ·μΉμ κ°μ§κ³ μλλ°, κ·Έ κ·μΉμ βμ°μ°μμ κ²°ν©κ·μΉβμ΄λΌκ³ νλ€.
λλΆλΆ μΌμͺ½ β μ€λ₯Έμͺ½μ μμλ‘ μ°μ°μ μννκ³ , λ¨ν μ°μ°μλ§ κ·Έ λ°λλ‘, μ€λ₯Έμͺ½ β μΌμͺ½μ μμλ‘ μ°μ°μ μννλ€.

<μ°μ°μμ μ°μ μμ μ 리>
- μ°μ > λΉκ΅ > λ Όλ¦¬ > λμ . λμ μ μ μΌ λ§μ§λ§μ μνλλ€.
- λ¨ν(1) > μ΄ν(2) > μΌν(3). λ¨ν μ°μ°μμ μ°μ μμκ° μ΄ν μ°μ°μλ³΄λ€ λλ€.
- λ¨ν μ°μ°μμ λμ μ°μ°μλ₯Ό μ μΈν λͺ¨λ μ°μ°μ μ§νλ°©ν₯μ μΌμͺ½μμ μ€λ₯Έμͺ½μ΄λ€.
<μ°μ°μμ μ°μ μμμ κ²°ν©κ·μΉ>

1.5 μ°μ λ³ν(usual arithmetic conversion)
μ± 91p.
β λ νΌμ°μ°μμ νμ μ κ°κ² μΌμΉμν¨λ€.(λ³΄λ€ ν° νμ μΌλ‘ μΌμΉ)
β‘ νΌμ°μ°μμ νμ μ΄ intλ³΄λ€ μμ νμ μ΄λ©΄ intλ‘ λ³νλλ€.
첫 λ²μ§Έ κ·μΉμ 2μ₯ λ³μμ μλ νλ³ν κ·μΉ μ°Έκ³
λ λ²μ§Έ κ·μΉμ 2μ₯ λ³μ μ μνμ μ νκΈ°μ€ μ°Έκ³
2. λ¨ν μ°μ°μ
2.1 μ¦κ° μ°μ°μ ++ --
κ°μ μ°μ°μ(--) νΌμ°μ°μμ κ°μ 1 κ°μμν¨λ€.
νμ | μ€λͺ | μ¬μ©μ |
---|---|---|
μ μν | κ°μ΄ μ°Έμ‘°λκΈ° μ μ μ¦κ°μν¨λ€. | j = ++i; |
νμν | κ°μ΄ μ°Έμ‘°λ νμ μ¦κ°μν¨λ€. | j = i++; |
κ·Έλ¬λ β++i;βμ βi++;βμ²λΌ μ¦κ°μ°μ°μκ° μμμ΄λ λ©μλ νΈμΆμ ν¬ν¨λμ§ μκ³ λ 립μ μΈ νλμ λ¬Έμ₯μΌλ‘ μ°μΈ κ²½μ°μλ μ μνκ³Ό νμνμ μ°¨μ΄κ° μλ€.
++i; // iμ κ°μ 1 μ¦κ°μν¨λ€.
i++; // μμ λ¬Έμ₯κ³Ό μ°¨μ΄κ° μλ€.
μ¦κ° μ°μ°μκ° ν¬ν¨λ μμ μ΄ν΄νκΈ° μ΄λ €μΈ λλ λ€μκ³Ό κ°μ΄ μ¦κ° μ°μ°μλ₯Ό λ°λ‘ λΌμ΄λ΄λ©΄ μ΄ν΄νκΈ°κ° μ¬μμ§λ€. μ μνμ κ²½μ° μ¦κ°μ°μ°μλ₯Ό μμ μ΄μ μΌλ‘,
j = ++i; // μ μν
β
++i; // μ¦κ° νμ
j = i; // μ°Έμ‘°νμ¬ λμ
νμνμ κ²½μ° μ¦κ°μ°μ°μλ₯Ό μμ μ΄νλ‘ λΌμ΄λ΄λ©΄ λλ€.
j = i++; // νμν
β
j = i; // μ°Έμ‘°νμ¬ λμ
νμ
i++; // μ¦κ°
ch3 - OperatorEx3.java
class OperatorEx03 { public static void main(String args[]) { int i=5, j=5; System.out.println(i++); System.out.println(++j); System.out.println("i = " + i + ", j = " +j); } }
μ¦κ° μ°μ°μλ₯Ό μ¬μ©νλ©΄ μ½λκ° κ°κ²°ν΄μ§μ§λ§, μ§λμΉλ©΄ μ½λκ° λ³΅μ‘ν΄μ μ΄ν΄νκΈ° μ΄λ €μμ§κΈ°λ νλ€. μλ₯Ό λ€μ΄ xμ κ°μ΄ 5μΌ λ, μλ μμ΄ μνλ νμ xμ κ°μ μΌλ§μΌκΉ?
x = x++ - ++x; // xμ κ°μ -1? -2?
μκ°λ³΄λ€ μ½κ² λ΅μ λ΄κΈ° μ΄λ €μΈ κ²μ΄λ€. μ€μ νλ‘κ·Έλλ°μμλ μ΄λ¬ν μ½λλ₯Ό μμ±ν μΌμ΄ μκ³ , μ΄λ κ² μμ±νλ κ²μ λ°λμ§νμ§ μλ€. νλμ μμμ μ¦κ°μ°μ°μμ μ¬μ©μ μ΅μννκ³ , μμ λ λ² μ΄μ ν¬ν¨λ λ³μμ μ¦κ°μ°μ°μλ₯Ό μ¬μ©νλ κ²μ νΌν΄μΌ νλ€.
κ°μ μ°μ°μ(--)λ νΌμ°μ°μμ κ°μ 1 κ°μμν¨λ€λ κ²λ§ λΉΌλ©΄ μ¦κ° μ°μ°μμ λμΌνλ€.
2.2 λΆνΈ μ°μ°μ + -
λΆνΈ μ°μ°μ -'λ νΌμ°μ°μμ λΆνΈλ₯Ό λ°λλ‘ λ³κ²½ν κ²°κ³Όλ₯Ό λ°ννλ€. νΌμ°μ°μκ° μμλ©΄ μμ, μμλ©΄ μμκ° μ°μ°μ κ²°κ³Όκ° λλ€. λΆνΈμ°μ°μ'+'λ νλ μΌμ΄ μμΌλ©°, μ°μ΄λ κ²½μ°λ κ±°μ μλ€. λΆνΈμ°μ°μ '-'κ° μμΌλκΉ νμμ μΌλ‘ '+'λ₯Ό μΆκ°ν΄ μ’μ κ²λΏμ΄λ€.
λΆνΈ μ°μ°μλ booleanνκ³Ό charνμ μ μΈν κΈ°λ³Ένμλ§ μ¬μ©ν μ μλ€.
3. μ°μ μ°μ°μ
μ°μ μ°μ°μμλ μ¬μΉ μ°μ°μ(+, -, *, /)μ λλ¨Έμ§ μ°μ°μ(%)κ° μλ€. μ¬μΉμ°μ°μ μΌμμνμμ μμ£Ό μ¬μ©νλ μ΅μν κ²μ΄λΌ 그리 μ΄λ ΅μ§ μμ κ²μ΄λ€. λ€λ§ λͺ κ°μ§ μ£Όμν μ¬νλ€μ΄ μλλ°, κ·Έκ²λ€μ μ€μ¬μΌλ‘ μ€λͺ ν κ²μ΄λ€.
3.1 μ¬μΉ μ°μ°μ + - *
μ μν - byte, short, int, long
int a = 10;
int b = 4;
System.out.printf("%d + %d = %d%n", a, b, a + b);
System.out.printf("%d - %d = %d%n", a, b, a - b);
System.out.printf("%d * %d = %d%n", a, b, a * b);
System.out.printf("%d / %d = %d%n", a, b, a / b);
System.out.printf("%d / %f = %f%n", a, (float)b, a / (float)b);
λλκΈ° μ°μ°μμ λ νΌμ°μ°μκ° λͺ¨λ intνμ μΈ κ²½μ°, μ°μ°κ²°κ³Ό μμ intνμ λλ€. κ·Έλμ μ€μ μ°μ°κ²°κ³Όλ 2.5μΌμ§λΌλ intνμ μ κ°μΈ 2λ₯Ό κ²°κ³Όλ‘ μ»λλ€. intνμ μ μμμ μ μ μ₯νμ§ λͺ»νλ―λ‘ μ μλ§ λ¨κ³ μμ€μ μ΄νλ λ²λ €μ§κΈ° λλ¬Έμ΄λ€. μ΄λ, λ°μ¬λ¦Όμ΄ λ°μνμ§ μλλ€λ κ²μ μ£Όμνμ.
System.out.println(3/0); // μ€ννλ©΄, μ€λ₯(ArithmeticException) λ°μ
System.out.println(3/0.0); // Infinityκ° μΆλ ₯λ¨
κ·Έλ¦¬κ³ νΌμ°μ°μκ° μ μνμΈ κ²½μ°, λλλ μλ‘ 0μ μ¬μ©ν μ μλ€. λ§μΌ 0μΌλ‘ λλλ©΄ μ»΄νμΌμ μ μμ μΌλ‘ λμ§λ§ μ€ν μ μ€λ₯(ArithmeticException)κ° λ°μνλ€.
λΆλ μμμ κ°μΈ 0.0f, 0.0dλ‘ λλλ κ²μ κ°λ₯νμ§λ§ κ·Έ κ²°κ³Όλ Infinity(무νλ)μ΄λ€.
byte a = 10;
byte b = 30;
byte c = a * b; // μλ¬ λ°μ
System.out.println(c);
μ΄ μμ λ₯Ό μ»΄νμΌνλ©΄ μλ¬κ° λ°μνλ€. aμ bλ λͺ¨λ intνλ³΄λ€ μμ byteνμ΄κΈ° λλ¬Έμ μ°μ°μ'+'λ μ΄ λ κ°μ νΌμ°μ°μλ€μ μλ£νμ intνμΌλ‘ λ³νν λ€μ μ°μ°(λ§μ )μ μννλ€.
κ·Έλμ 'a+b'μ μ°μ°κ²°κ³Όλ byteνμ΄ μλ intν(4 byte)μΈ κ²μ΄λ€. 4 byteμ κ°μ 1 byteμ λ³μμ νλ³νμμ΄ μ μ₯νλ €κ³ νκΈ° λλ¬Έμ μλ¬κ° λ°μνλ κ²μ΄λ€.
byte a = 10;
byte b = 30;
byte c = (byte) (a * b); // 44μΆλ ₯
System.out.println(c);
μ΄ μμ λ₯Ό μ€ννλ©΄ νλ©΄μ 44κ° μΆλ ₯λλ€. β10 * 30βμ κ²°κ³Όλ 300μ΄μ§λ§, νλ³νμμ λ°°μ΄ κ²μ²λΌ, ν° μλ£νμμ μμ μλ£νμΌλ‘ λ³ννλ©΄ λ°μ΄ν°μ μμ€μ΄ λ°μνλ―λ‘ κ°μ΄ λ°λ μ μλ€. 300μ byteνμ λ²μλ₯Ό λκΈ° λλ¬Έμ byteνμΌλ‘ λ³ννλ©΄ λ°μ΄ν° μμ€μ΄ λ°μνμ¬ κ²°κ΅ 44κ° byteν λ³μ cμ μ μ₯λλ€.
int a = 1000000; // 1,000,000 1λ°±λ§
int b = 2000000; // 2,000,000 2λ°±λ§
long c = a * b; // a * b = 2,000,000,000,000 ?
System.out.println(c);
μ a * bμ κ²°κ³Ό κ°μ λ΄λ λ³μ 2μ μλ£νμ΄ long νμ
(8 byte)μ΄κΈ° λλ¬Έμ 2 X 10ο»Ώμ μ μ₯νκΈ°μ μΆ©λΆνλ―λ‘ β2000000000000βμ΄ μΆλ ₯λ κ² κ°μ§λ§, κ²°κ³Όλ μ ν λ€λ₯Έ κ°μ΄ μΆλ ₯λλ€.
κ·Έ μ΄μ λ intνμ
κ³Ό intνμ
μ μ°μ°κ²°κ³Όλ intνμ
μ΄κΈ° λλ¬Έμ΄λ€. 'a * bμ κ²°κ³Όκ° μ΄λ―Έ intνμ
μ κ°(- 1454759936)μ΄λ―λ‘ longνμΌλ‘ μλ νλ³νλμ΄λ κ°μ λ³νμ§ μλλ€.
long c = a * b;
-> long c = 1000000 * 2000000;
-> long c = -1454759936;
μ¬λ°λ₯Έ κ²°κ³Όλ₯Ό μ»μΌλ €λ©΄ μλμ κ°μ΄ λ³μ a λλ bμ νμ μ βlongβμΌλ‘ λ³νν΄μΌ νλ€.
long c = (long)a * b;
-> long c = (long)1000000 * 2000000;
-> long c = 1000000L * 2000000;
-> long c = 1000000L * 2000000L;
-> long c = 1000000000000L;
λ¬Έμν - char
char a = 'a';
char d = 'd';
char zero = '0';
char two = '2';
System.out.printf("'%c' - '%c' = %d%n", d, a, d - a); // 'd' - 'a' = 3
System.out.printf("'%c' - '%c' = %d%n", two, zero, two - zero);
System.out.printf("'%c'=%d%n", a, (int)a);
System.out.printf("'%c'=%d%n", d, (int)d);
System.out.printf("'%c'=%d%n", zero, (int)zero);
System.out.printf("'%c'=%d%n", two, (int)two);
μ¬μΉμ°μ°μ νΌμ°μ°μλ‘ μ«μλΏλ§ μλλΌ λ¬Έμλ κ°λ₯νλ€. λ¬Έμλ μ€μ λ‘ ν΄λΉ λ¬Έμμ μ λμ½λ(λΆνΈμλ μ μ)λ‘ λ°λμ΄ μ μ₯λλ―λ‘ λ¬Έμκ°μ μ¬μΉμ°μ°μ μ μκ°μ μ°μ°κ³Ό λμΌνλ€. μ£Όλ‘ λ¬Έμκ°μ λΊμ μ νλ κ²½μ°κ° λλΆλΆμ΄λ©°, λ¬Έμ β2βλ₯Ό μ«μλ‘ λ³ννλ €λ©΄ λ€μκ³Ό κ°μ΄ λ¬Έμ '0μ λΉΌμ£Όλ©΄ λλ€.
'2' - '0' -> 50 - 48 -> 2
λ¬Έμ 2μ μ λμ½λλ 50μ΄κ³ , λ¬Έμ '0βμ 48μ΄λ―λ‘, λ λ¬Έμκ°μ λΊμ μ 2λ₯Ό κ²°κ³Όλ‘ μ»λλ€. μλμ νλ μ λμ½λμ μΌλΆμΈλ°, '0'~β9βκΉμ§μ λ¬Έμκ° μ°μμ μΌλ‘ λ°°μΉλμ΄ μλ κ²μ μ μ μλ€. κ·Έλ κΈ° λλ¬Έμ ν΄λΉ λ¬Έμμμ β0'μ λΉΌμ£Όλ©΄ μ«μλ‘ λ³νλλ κ²μ΄λ€.
<μ«μμ μλ¬Έμμ μ λμ½λ>
λ¬Έμ | μ½λ |
---|---|
0 | 48 |
1 | 49 |
2 | 50 |
3 | 51 |
4 | 52 |
5 | 53 |
6 | 54 |
7 | 55 |
8 | 56 |
9 | 57 |
λ¬Έμ | μ½λ |
---|---|
A | 65 |
B | 66 |
C | 67 |
D | 68 |
E | 69 |
β¦ | β¦ |
W | 87 |
X | 88 |
Y | 89 |
Z | 90 |
λ¬Έμ | μ½λ |
---|---|
a | 97 |
b | 98 |
c | 99 |
d | 100 |
e | 101 |
β¦ | β¦ |
w | 119 |
x | 120 |
y | 121 |
z | 122 |
Operator12.java
char c1 = 'a'; // c1μλ λ¬Έμ 'a'μ μ½λκ°μΈ 97μ΄ μ μ₯λλ€. char c2 = c1; // c1μ μ μ₯λμ΄ μλ κ°μ΄ c2μ μ μ₯λλ€. char c3 =' '; // c3λ₯Ό 곡백μΌλ‘ μ΄κΈ°ν νλ€. int i = c1 + 1; // 'a'+1 β 97+1 β 98 c3 = (char)(c1 + 1); c2++; c2++; System.out.println("i=" + i); System.out.println("c2=" + c2); System.out.println("c3=" + c3);
char c1 = 'a';
// char c2 = c1 + 1; // λΌμΈ 5 : μ»΄νμΌ μλ¬ λ°μ
char c2 = 'a' + 1; // λΌμΈ 6 : μ»΄νμΌ μλ¬ μμ
System.out.println(c2);
μ΄ μμ λ₯Ό μ»΄νμΌνλ©΄ μ€λ₯κ° λ°μνμ§ μκ³ μ€νλ μ¬λ°λ₯Έ κ²°κ³Όλ₯Ό μ»λλ€. λ§μ μ°μ°μμ κ°μ μ΄ν μ°μ°μλ intλ³΄λ€ μμ νμ μ νΌμ°μ°μλ₯Ό intλ‘ μλ νλ³ννλ€κ³ λ°°μ λλ° μ΄μ§Έμ λΌμΈ 6μ μ½λλ νλ³νμ ν΄μ£Όμ§ μκ³ λ λ¬Έμ κ° μλ κ²μΌκΉ?
κ·Έκ²μ λ°λ‘ βaβ+1μ΄ λ¦¬ν°λ΄ κ°μ μ°μ°μ΄κΈ° λλ¬Έμ΄λ€. μμ λλ 리ν°λ΄ κ°μ μ°μ°μ μ€ν κ³Όμ λμ λ³νλ κ°μ΄ μλκΈ° λλ¬Έμ, μ»΄νμΌ μμ μ»΄νμΌλ¬κ° κ³μ°ν΄μ κ·Έ κ²°κ³Όλ‘ λ체ν¨μΌλ‘μ¨ μ½λλ₯Ό λ³΄λ€ ν¨μ¨μ μΌλ‘ λ§λ λ€.
<μ»΄νμΌλ¬μ μν΄μ μ΅μ νλ μ½λμ λΉκ΅>
μ»΄νμΌ μ μ μ½λ | μ»΄νμΌ νμ μ½λ |
---|---|
char c2 = βaβ + 1; int sec = 60 * 60 * 24; | char c2 = βbβ; int sec = 86400; |
μμμ μ μ μλ―μ΄ μ»΄νμΌλ¬κ° 미리 λ§μ μ°μ°μ μννκΈ° λλ¬Έμ μ€ν μμλ λ§μ μ°μ°μ΄ μνλμ§ μλλ€. κ·Έμ λ§μ μ°μ°κ²°κ³ΌμΈ λ¬Έμ βbβλ₯Ό λ³μ c2μ μ μ₯ν λΏμ΄λ€.
κ·Έλ¬λ λΌμΈ 5μ κ°μ΄ μμμ λ³μκ° λ€μ΄κ° μλ κ²½μ°μλ μ»΄νμΌλ¬κ° 미리 κ³μ°μ ν μ μκΈ° λλ¬Έμ μλμ μ€λ₯Έμͺ½ μ½λμ κ°μ΄ νλ³νμ ν΄μ£Όμ΄μΌ νλ€. κ·Έλ μ§ μμΌλ©΄ μ»΄νμΌ μλ¬κ° λ°μνλ€.
char c2 = c1 + 1;
β
char c2 = (char) (c1+1);
μΌλΆλ¬ λ»ν 리ν°λ΄ μ°μ°μ νμ΄μΈ νμλ μμ§λ§, μ½λμ κ°λ μ±κ³Ό μ μ§λ³΄μλ₯Ό μν΄μ κ·Έλ κ² νλ κ²½μ°κ° μλ€. ν3-9μμ intνμ μ λ³μ secμ ν루λ₯Ό μ΄λ¨μλ‘ λ³νν κ°μ μ μ₯νλ μ½λλ₯Ό 보면, β86400βμ΄λΌλ κ°λ³΄λ€λ '60*60*24βμ κ°μ΄ μ μ΄μ£Όλ κ²μ΄ μ΄ν΄νκΈ°λ μ½κ³ μ€λ₯κ° λ°μν μ¬μ§κ° μ λ€. λμ€μ λ°λμ (12μκ°)λ‘ κ°μ λ³κ²½ν΄μΌνλ€λ©΄ κ³μ°ν νμμμ΄ '60*60*12'λ‘ λ³κ²½νλ©΄ λκΈ° λλ¬Έμ΄λ€. μ΄λ κ² νμ΄μ¨λ κ²°κ΅ μ»΄νμΌλ¬μ μν΄μ 미리 κ³μ°λκΈ° λλ¬Έμ μ€ν μμ μ±λ₯μ°¨μ΄λ μλ€.
μμ 3-14 OperatorEx14
class OperatorEx14 { public static void main(String[] args) { char c = 'a'; for(int i=0; i<26; i++) { // λΈλ{} μμ λ¬Έμ₯μ 26λ²μ λ°λ³΅νλ€. System.out.print(c++); //'a'λΆν° 26κ°μ λ¬Έμλ₯Ό μΆλ ₯νλ€. } System.out.println(); // μ€λ°κΏμ νλ€. c = 'A'; for(int i=0; i<26; i++) { // λΈλ{} μμ λ¬Έμ₯μ 26λ²μ λ°λ³΅νλ€. System.out.print(c++); //'A'λΆν° 26κ°μ λ¬Έμλ₯Ό μΆλ ₯νλ€. } System.out.println(); c='0'; for(int i=0; i<10; i++) { // λΈλ{} μμ λ¬Έμ₯μ 10λ²μ λ°λ³΅νλ€. System.out.print(c++); //'0'λΆν° 10κ°μ λ¬Έμλ₯Ό μΆλ ₯νλ€. } System.out.println(); } }
char lowerCase = 'a';
char upperCase = (char) (lowerCase - 32);
System.out.println(upperCase);
π‘Β λλ¬Έμμ μλ¬Έμ κ°μ μ½λκ° μ°¨μ΄λ 10μ§μλ‘ 32μ΄λ€.
μ€μν
float pi = 3.141592f;
float shortPi = (int)(pi * 1000) / 1000f;
System.out.println(shortPi); // 3.141
(int) (pi * 1000) / 1000f; // μμ μμμμ μ μΌ λ¨Όμ μνλλ κ²μ κ΄νΈ μμ 'pi * 1000'μ΄λ€.
(int) (3141.592f) / 1000f; // λ¨νμ°μ°μμΈ νλ³ν μ°μ°μμ νλ³νμ΄ μνλλ€. 3141.592fλ₯Ό intλ‘ λ³ννλ©΄ 3141μ μ»λλ€. μμμ μ΄νλ λ°μ¬λ¦Ό μμ΄ λ²λ €μ§λ€.
3141 / 1000f; // intμ floatμ μ°μ°μ΄λ―λ‘ intκ° floatλ‘ λ³νλ λ€μ, floatμ floatμ μ°μ°μ΄ μνλλ€.
3141.0f / 1000f -> 3.141f;
μμ 3-17 Operator17.java - λ°μ¬λ¦Όλλλ‘νλ μμ
class OperatorEx17 { public static void main(String args[]) { double pi = 3.141592; double shortPi = (int)(pi * 1000 + 0.5) / 1000.0; System.out.println(shortPi); } }
μμ 3-18 Operator18.java - λ°μ¬λ¦Όλλλ‘νλ μμ 2
class OperatorEx18 { public static void main(String args[]) { double pi = 3.141592; double shortPi = Math.round(pi * 1000) / 1000.0; System.out.println(shortPi); } }
3.2 λλ¨Έμ§ μ°μ°μ %
μ± 108p.
4. λΉκ΅ μ°μ°μ(p.109)
4.1 λμλΉκ΅ μ°μ°μ < > <= >=
4.2 λ±κ°λΉκ΅ μ°μ°μ == !=
5. λ Όλ¦¬ μ°μ°μ
5.1 λ Όλ¦¬ μ°μ°μ - &&, ||, !
&& (ANDκ²°ν©) νΌμ°μ°μ μμͺ½ λͺ¨λ trueμ΄μ΄μΌ trueλ₯Ό κ²°κ³Όλ‘ μ»λλ€.
ν¨μ¨μ μΈ μ°μ°(short circuit evaluation)
λ Όλ¦¬ μ°μ°μμ λ λ€λ₯Έ νΉμ§μ ν¨μ¨μ μΈ μ°μ°μ νλ€λ κ²μ΄λ€. ORμ°μ° β||βμ κ²½μ° λ νΌμ°μ°μ μ€ μ΄λ ν μͺ½λ§ βμ°Έβμ΄μ΄λ μ 체 μ°μ°κ²°κ³Όκ° βμ°Έβμ΄λ―λ‘ μ’μΈ‘ νΌμ°μ°μκ° βture(μ°Έ)βμ΄λ©΄, μ°μΈ‘ νΌμ°μ°μμ κ°μ νκ°νμ§ μλλ€.
βxκ° trueμ΄λ©΄, x || yλ νμ trueμ΄λ€.β
ANDμ°μ° β&&βμ κ²½μ°λ λ§μ°¬κ°μ§λ‘μ΄λ νμͺ½λ§ βκ±°μ§(false)βμ΄μ΄λ μ 체 μ°μ°κ²°κ³Όκ° βκ±°μ§(false)βμ΄λ―λ‘ μ’μΈ‘ νΌμ°μ°μκ° βκ±°μ§(false)βμ΄λ©΄ μ°μΈ‘ νΌμ°μ°μλ νκ°νμ§ μλλ€.
βxκ° falseμ΄λ©΄, x && yλ νμ falseμ΄λ€.β
κ·Έλμ κ°μ 쑰건μμ΄λΌλ νΌμ°μ°μμ μμΉμ λ°λΌμ μ°μ°μλκ° λ¬λΌμ§ μ μλ κ²μ΄λ€. ORμ°μ° β||βμ κ²½μ°μλ βμ°ΈβμΌ νλ₯ μ΄ λμ νΌμ°μ°μλ₯Ό μ°μ°μμ μΌμͺ½μ λμμΌ λ λΉ λ₯Έ μ°μ°κ²°κ³Όλ₯Ό μ»μ μ μλ€.
('a' <= ch && ch <= 'z' || ('A' <= ch && ch <= 'Z'))
μμ μμ λ¬Έμ chκ° μλ¬Έμ λλ λλ¬ΈμμΈμ§ νμΈνλ κ²μΈλ°, μ΄ μμμ λ¬Έμ chκ° μλ¬ΈμμΈ μ‘°κ±΄μ λλ¬ΈμμΈ μ‘°κ±΄λ³΄λ€ μΌμͺ½μ λμλ€. κ·Έ μ΄μ λ μ¬μ©μλ‘λΆν° λ¬Έμ chλ₯Ό μ λ ₯λ°μ λ, μ¬μ©μκ° λλ¬Έμλ³΄λ€ μλ¬Έμλ₯Ό μ λ ₯ν νλ₯ μ΄ λλ€κ³ νλ¨νκΈ° λλ¬Έμ΄λ€. μ€μ λ‘ μ¬μ©μκ° μλ¬Έμλ₯Ό λ μμ£Ό μ λ ₯νλ€λ©΄, μ΄ μμ λ ν¨μ¨μ μΌλ‘ μ²λ¦¬λ κ²μ΄λ€.
class OperatorEx26 {
public static void main(String[] args) {
int a = 5;
int b = 0;
System.out.printf("a=%d, b=%d%n", a, b);
System.out.printf("a!=0 || ++b!=0 = %b%n", a!=0 || ++b!=0);
System.out.printf("a=%d, b=%d\n", a, b);
System.out.printf("a==0 && ++b!=0 = %b%n", a==0 && ++b!=0);
System.out.printf("a=%d, b=%d%n", a, b);
} // mainμ λ
}
λ Όλ¦¬ μ°μ°μκ° ν¨μ¨μ μΈ μ°μ°μ νλμ§ νμΈνλ μμ μ΄λ€. λ³μ bμ μ¦κ° μ°μ°μ β++βμ μ¬μ©ν΄μ μ°μΈ‘ νΌμ°μ°μκ° μ²λ¦¬λλ©΄, bμ κ°μ΄ μ¦κ°νλλ‘ νλ€.
κ·Έλ¬λ μ€νκ²°κ³Όμμ μ μ μλ―μ΄, λ λ²μ λ Όλ¦¬μ°μ° νμλ bμ κ°μ μ¬μ ν 0μΈ μ±λ‘ λ¨μμλ€. β||(OR)βμ κ²½μ°λ μ’μΈ‘ νΌμ°μ°μ(a!=0)κ° μ°Έμ΄λΌμ, κ·Έλ¦¬κ³ β&&(AND)βμ κ²½μ°λ μ’μΈ‘ νΌμ°μ°μ(a==0)κ° κ±°μ§μ΄λΌμ μ°μΈ‘ νΌμ°μ°μλ₯Ό νκ°νμ§ μμκΈ° λλ¬Έμ΄λ€.
λ Όλ¦¬ λΆμ μ°μ°μ !
μ΄ μ°μ°μλ νΌμ°μ°μκ° trueμ΄λ©΄ falseλ₯Ό, falseλ©΄ trueλ₯Ό κ²°κ³Όλ‘ λ°ννλ€.
x | !x |
---|---|
true | false |
false | true |
λ Όλ¦¬ λΆμ μ°μ°μβ!βκ° μ£Όλ‘ μ¬μ©λλ κ³³μ 쑰건문과 λ°λ³΅λ¬Έμ 쑰건μμ΄λ©°, μ΄ μ°μ°μλ₯Ό μ μ¬μ©νλ©΄ 쑰건μμ΄ λ³΄λ€ μ΄ν΄νκΈ° μ¬μμ§λ€. μλ₯Ό λ€μ΄ βλ¬Έμ chλ μλ¬Έμκ° μλλ€βλΌλ 쑰건μ μλμ μΌμͺ½κ³Ό κ°μ΄ μ°κΈ°λ³΄λ€ μ€λ₯Έμͺ½κ³Ό κ°μ΄ λ Όλ¦¬λΆμ μ°μ°μβ!βλ₯Ό μ¬μ©νλ μͺ½μ΄ μκΈ° μ½λ€.
ch < 'a' || ch > 'z'
β
!('a' <= ch || ch <= 'z')
μμ κ°μ΄ λ Όλ¦¬λΆμ μ°μ°μβ!βλ₯Ό μ μ ν μ¬μ©ν΄μ λ³΄λ€ μ΄ν΄νκΈ° μ¬μ΄ μμ΄ λλλ‘ λ Έλ ₯νμ.
μ β!!bβκ° νκ°λλ κ³Όμ
λ¨νμ°μ°μλ κ²°ν©λ°©ν₯μ΄ μ€λ₯Έμͺ½μμ μΌμͺ½μ΄λ―λ‘ νΌμ°μ°μμ κ°κΉμ΄ κ²λΆν° μ°μ°λλ€.
!!b
-> !!true // κ°κΉμ΄ μ°μ°μκ° λ¨Όμ μ°μ°λλ€.
-> !false // !trueμ κ²°κ³Όλ falseμ΄λ€.
-> true // !falseμ κ²°κ³Όλ trueμ΄λ€.
5.2 λΉνΈ μ°μ°μ & | ^ ~ << >>
λΉνΈ μ°μ°μλ νΌμ°μ°μλ₯Ό λΉνΈλ¨μλ‘ λ Όλ¦¬ μ°μ°νλ€. νΌμ°μ°μλ₯Ό μ΄μ§μλ‘ νννμ λμ κ° μ리λ₯Ό μλμ κ·μΉμ λ°λΌ ν3-14μ κ°μ΄ μ°μ°μ μννλ©°, νΌμ°μ°μλ‘λ μ€μλ νμ©νμ§ μλλ€. μ μ(λ¬Έμ ν¬ν¨)λ§ νμ©λλ€.
& (ANDμ°μ°μ) νΌμ°μ°μ μ μͺ½μ΄ λͺ¨λ 1μ΄μ΄μΌλ§ 1μ κ²°κ³Όλ‘ μ»λλ€. κ·Έ μΈμλ 0μ μ»λλ€.
^ (XORμ°μ°μ) νΌμ°μ°μμ κ°μ΄ μλ‘ λ€λ₯Ό λλ§ 1μ κ²°κ³Όλ‘ μ»λλ€. κ°μ λλ 0μ μ»λλ€.
<ν 3-14 λΉνΈ μ°μ°μμ μ°μ°κ²°κ³Ό>
x | y | x | y | x & y | x ^ y |
---|---|---|---|---|
1 | 1 | 1 | 1 | 0 |
1 | 0 | 1 | 0 | 1 |
0 | 1 | 1 | 0 | 1 |
0 | 0 | 0 | 0 | 0 |
π‘Β μ°μ°μ β^βλ λ°°νμ XOR(eXclusive OR)λΌκ³ νλ©°, νΌμ°μ°μμ κ°μ΄ μλ‘ λ€λ₯Έ κ²½μ°, μ¦ λ°°νμ μΈ κ²½μ°μλ§ μ°Έ(1)μ κ²°κ³Όλ‘ μ»λλ€.
λΉνΈORμ°μ°μβ|βλ μ£Όλ‘ νΉμ λΉνΈμ κ°μ λ³κ²½ν λ μ¬μ©νλ€. μλμ μμ νΌμ°μ°μ 0xABμ λ§μ§λ§ 4 bitλ₯Ό βFβλ‘ λ³κ²½νλ λ°©λ²μ 보μ¬μ€λ€.
μ | 2μ§μ | 16μ§μ |
---|---|---|
0xAB | 0xF = 0xAF | 10101011 00001111 | ) ββββββ 10101111 | 0xAB 0x F ββ 0xA F |
λΉνΈANDμ°μ°μβ&βλ μ£Όλ‘ νΉμ λΉνΈμ κ°μ λ½μλΌ λ μ¬μ©νλ€. μλμ μμμλ νΌμ°μ°μμ λ§μ§λ§ 4bitκ° μ΄λ€ κ°μΈμ§ μμλ΄λλ° μ¬μ©λμλ€.
μ | 2μ§μ | 16μ§μ |
---|---|---|
0xAB & 0xF = 0xB | 10101011 00001111 & ) ββββββ 00001011 | 0xAB 0x F ββ 0x B |
λΉνΈXORμ°μ°μβ^βλ λ νΌμ°μ°μμ λΉνΈκ° λ€λ₯Ό λλ§ 1μ΄ λλ€. κ·Έλ¦¬κ³ κ°μ κ°μΌλ‘ λκ³ XORμ°μ°μ μννλ©΄ μλμ κ°μΌλ‘ λμμ€λ νΉμ§μ΄ μμ΄μ κ°λ¨ν μνΈνμ μ¬μ©λλ€.
μ | 2μ§μ | 16μ§μ |
---|---|---|
0xAB ^ 0xF = 0xA4 0xA4 ^ 0xF = 0xAB | 10101011 00001111 ^ ) ββββββ 10100100 00001111 ^ ) ββββββ 10101011 | 0xAB 0xF ββ 0xA4 0xF ββ 0xAB |
μ΄ν΄λ₯Ό λκΈ° μν΄ 2μ§μλ₯Ό 8μλ¦¬λ‘ ννν κ²μ΄κ³ , μ¬μ€μ intνμ (4 byte)κ°μ μ°μ°μ΄λΌ 32μλ¦¬λ‘ νννλ κ²μ΄ λ§λ€. κ·Έλ¦¬κ³ λΉνΈμ°μ°μμλ νΌμ°μ°μμ νμ μ μΌμΉμν€λ βμ°μ λ³νβμ΄ μΌμ΄λ μ μλ€.
μμ 3-28 OperatorEx28.java
class OperatorEx28 { public static void main(String[] args) { int x = 0xAB; int y = 0xF; System.out.printf("x = %#X \t\t%s%n", x, toBinaryString(x)); System.out.printf("y = %#X \t\t%s%n", x, toBinaryString(y)); System.out.printf("%#X | %#X = %#X \t%s%n", x, y, x | y, toBinaryString(x | y)); System.out.printf("%#X & %#X = %#X \t%s%n", x, y, x & y, toBinaryString(x & y)); System.out.printf("%#X ^ %#X = %#X \t%s%n", x, y, x ^ y, toBinaryString(x ^ y)); System.out.printf("%#X ^ %#X ^ %#X = %#X %s%n", x, y, y, x ^ y ^ y, toBinaryString(x ^ y ^ y)); } // mainμ λ // 10μ§ μ μλ₯Ό 2μ§μλ‘ λ³ννλ λ©μλ static String toBinaryString(int x) { String zero = "00000000000000000000000000000000"; String tmp = zero + Integer.toBinaryString(x); return tmp.substring(tmp.length()-32); } }
λΉνΈ μ ν μ°μ°μ ~
μ΄ μ°μ°μλ νΌμ°μ°μλ₯Ό 2μ§μλ‘ νννμ λ, 0μ 1λ‘, 1μ 0μΌλ‘ λ°κΎΌλ€. λ Όλ¦¬λΆμ μ°μ°μ β!βμ μ μ¬νλ€.
<λΉνΈμ ν μ°μ°μμ 2μ§ μ°μ°κ²°κ³Ό>
x | ~x |
---|---|
1 | 0 |
0 | 1 |
λΉνΈ μ ν μ°μ°μ β~'μ μν΄ 'λΉνΈ μ ν λκ³ λλ©΄, λΆνΈμλ νμ μ νΌμ°μ°μλ λΆνΈκ° λ°λλ‘ λ³κ²½λλ€. μ¦, νΌμ°μ°μμ 1μ 보μλ₯Ό μ»μ μ μλ κ²μ΄λ€. κ·Έλμ λΉνΈμ νμ°μ°μ λ₯Ό β1μ 보μ' μ°μ°μλΌκ³ λ νλ€.
μλ₯Ό λ€μ΄ 10μ§μ 10μ λΉνΈμ ν μ°μ°ν κ²°κ³Όλ -11μ΄κ³ , μ΄ κ°μ 10μ β1μ 보μ'μ΄λ€. μ΄λ―Έ λ°°μ΄ κ²κ³Ό κ°μ΄ 1μ 보μμ 1μ λνλ©΄ μμκ° λλ―λ‘ -11μ 1μ λνλ©΄ -10μ΄ λκ³ -11μ 10μ 1μ 보μκ° λ§λ€λ κ²μ νμΈν μ μλ€.
μμ 3-29 OperatorEx29.java
class OperatorEx29 { public static void main(String[] args) { byte p = 10; byte n = -10; System.out.printf(" p =%d \t%s%n", p, toBinaryString(p)); System.out.printf("~p =%d \t%s%n", ~p, toBinaryString(~p)); System.out.printf("~p+1=%d \t%s%n", ~p+1, toBinaryString(~p+1)); System.out.printf("~~p =%d \t%s%n", ~~p, toBinaryString(~~p)); System.out.println(); System.out.printf(" n =%d%n", n); System.out.printf("~(n-1)=%d%n", ~(n-1)); } // mainμ λ // 10μ§ μ μλ₯Ό 2μ§μλ‘ λ³ννλ λ©μλ static String toBinaryString(int x) { String zero = "00000000000000000000000000000000"; String tmp = zero + Integer.toBinaryString(x); return tmp.substring(tmp.length()-32); } }
μμ μ μ pκ° μμ λ, pμ λν μμ μ μλ₯Ό μ»μΌλ €λ©΄ β~p+1βμ κ³μ°νλ©΄ λλ€.
β~~pβλ λ³μ pμ λΉνΈ μ ν μ°μ°μ λ λ² μ μ©ν κ²μΈλ°, 1μ 0μΌλ‘ λ°κΏ¨λ€κ° λ€μ 0μ 1λ‘ λ°κΎΈλ―λ‘ μλμ κ°μ΄ λλ€. κ·Έλ¬λ μ°μ°κ²°κ³Όμ νμ μ΄ byteκ° μλλΌ intλΌλ κ²μ μ£Όμνμ.
μ¬ννΈ μ°μ°μ << >>
μ΄ μ°μ°μλ νΌμ°μ°μμ κ° μ리(2μ§μλ‘ νννμ λ)λ₯Ό βμ€λ₯Έμͺ½(>>)β λλ βμΌμͺ½(<<)βμΌλ‘ μ΄λ(shift)νλ€κ³ ν΄μ βμ¬ννΈ μ°μ°μ(shift operator)βλΌκ³ μ΄λ¦ λΆμ¬μ‘λ€.
μλ₯Ό λ€μ΄ β8 << 2βλ μΌμͺ½ νΌμ°μ°μμΈ 10μ§μ 8μ μ§μλ₯Ό μΌμͺ½μΌλ‘ 2μ리 μ΄λνλ€.
μ΄λ, μ리μ΄λμΌλ‘ μ μ₯λ²μλ₯Ό λ²μ΄λ κ°λ€μ λ²λ €μ§κ³ λΉμ리λ 0μΌλ‘ μ±μμ§λ€.
β<<β μ°μ°μμ κ²½μ°, νΌμ°μ°μμ λΆνΈμ μκ΄μμ΄ κ° μ리λ₯Ό μΌμͺ½μΌλ‘ μ΄λμν€λ©° λΉμΉΈμ 0μΌλ‘λ§ μ±μ°λ©΄ λμ§λ§, β>>' μ°μ°μλ μ€λ₯Έμͺ½μΌλ‘ μ΄λμν€κΈ° λλ¬Έμ λΆνΈμλ μ μλ λΆνΈλ₯Ό μ μ§νκΈ° μν΄ μΌμͺ½ νΌμ°μ°μκ° μμμΈ κ²½μ° λΉμ리λ₯Ό 1λ‘ μ±μ΄λ€. λ¬Όλ‘ μμμΌ λλ 0μΌλ‘ μ±μ΄λ€.
x >> nμ x / 2
ο»Ώμ κ²°κ³Όμ κ°λ€.
κ·Έλ¦¬κ³ , 'x << nβ λλ 'x >> nβμμ, nμ κ°μ΄ μλ£νμ bitμ λ³΄λ€ ν¬λ©΄, μλ£νμ bitμλ‘ λλ λλ¨Έμ§λ§νΌλ§ μ΄λνλ€. μλ₯Ό λ€μ΄ intνμ μ΄ 4 byte(=32 bit)μΈ κ²½μ°, μ리μλ₯Ό 32λ² λ°κΎΈλ©΄ κ²°κ΅ μ μλ¦¬λ‘ λμμ€κΈ° λλ¬Έμ. 8 >Γ> 32'λ μ무 μΌλ νμ§ μλλ€. β8>>34'λ 34λ₯Ό 32λ‘ λλ λλ¨Έμ§μΈ 2λ§νΌλ§ μ΄λνλ '3>>2βλ₯Ό μννλ€. λΉμ°ν nμ μ μ λ§ κ°λ₯νλ©° μμμΈ κ²½μ°, λΆνΈμλ μ μλ‘ μλ λ³νλλ€.
κ³±μ μ΄λ λλμ μ°μ°μλ₯Ό μ¬μ©νλ©΄ κ°μ κ²°κ³Όλ₯Ό μ»μ μ μλλ°, κ΅³μ΄ μ¬ννΈ μ°μ°μλ₯Ό μ 곡νλ μ΄μ λ μλ λλ¬Έμ΄λ€.
8>>2μ΄ 8/4λ³΄λ€ μλκ° λ λΉ λ¦
κ·Έλ¬λ νλ‘κ·Έλ¨μ μ€νμλλμ€μνμ§λ§ νλ‘κ·Έλ¨μ κ°λ°ν λ μ½λμ κ°λ μ± (readability)λ μ€μνλ€. μ¬ννΈ μ°μ°μκ° μλκ° λΉ λ₯΄κΈ΄ ν΄λ κ³±μ μ΄λ λλμ μ°μ°μ 보λ€λ κ°λ μ±μ΄ λ¨μ΄μ§ κ²μ΄λ€. μ¬ννΈ μ°μ°μλ³΄λ€ κ³±μ λλ λλμ μ°μ°μλ₯Ό μ£Όλ‘ μ¬μ©νκ³ , λ³΄λ€ λΉ λ₯Έ μ€νμλκ° μꡬλμ΄μ§λ κ³³λ§ μ¬ννΈ μ°μ°μλ₯Ό μ¬μ©νλ κ²μ΄ μ’λ€.
μμ 3-30 OperatorEx30.java ν 3-18μ λ΄μ©μ μ§μ νμΈν μ μλ μμ
class OperatorEx30 { public static void main(String[] args) { int dec = 8; System.out.printf("%d >> %d = %4d \t%s%n", dec, 0, dec >> 0, toBinaryString(dec >> 0)); System.out.printf("%d >> %d = %4d \t%s%n", dec, 1, dec >> 1, toBinaryString(dec >> 1)); System.out.printf("%d >> %d = %4d \t%s%n", dec, 2, dec >> 2, toBinaryString(dec >> 2)); System.out.printf("%d << %d = %4d \t%s%n", dec, 0, dec << 0, toBinaryString(dec << 0)); System.out.printf("%d << %d = %4d \t%s%n", dec, 1, dec << 1, toBinaryString(dec << 1)); System.out.printf("%d << %d = %4d \t%s%n", dec, 2, dec << 2, toBinaryString(dec << 2)); System.out.println(); dec = -8; System.out.printf("%d >> %d = %4d \t%s%n", dec, 0, dec >> 0, toBinaryString(dec >> 0)); System.out.printf("%d >> %d = %4d \t%s%n", dec, 1, dec >> 1, toBinaryString(dec >> 1)); System.out.printf("%d >> %d = %4d \t%s%n", dec, 2, dec >> 2, toBinaryString(dec >> 2)); System.out.printf("%d << %d = %4d \t%s%n", dec, 0, dec << 0, toBinaryString(dec << 0)); System.out.printf("%d << %d = %4d \t%s%n", dec, 1, dec << 1, toBinaryString(dec << 1)); System.out.printf("%d << %d = %4d \t%s%n", dec, 2, dec << 2, toBinaryString(dec << 2)); System.out.println(); dec = 8; System.out.printf("%d >> %2d = %4d \t%s%n", dec, 0, dec >> 0, toBinaryString(dec << 2)); System.out.printf("%d >> %2d = %4d \t%s%n", dec, 32, dec >> 32, toBinaryString(dec << 2)); } // mainμ λ // 10μ§ μ μλ₯Ό 2μ§μλ‘ λ³ννλ λ©μλ static String toBinaryString(int x) { String zero = "00000000000000000000000000000000"; String tmp = zero + Integer.toBinaryString(x); return tmp.substring(tmp.length()-32); } }
μμ 3-31 OperatorEx31.java μ¬ννΈ, λΉνΈAND μ°μ°μλ₯Ό μ΄μ©ν΄μ 16μ§μλ₯Ό λμμλΆν° νμλ¦¬μ© λ½μλ΄λ μμ
λΉνΈANDμ°μ°μλ λ bitκ° λͺ¨λ 1μΌ λλ§ 1μ΄ λλ―λ‘ 0xABCDμ 0x000Fλ₯Ό λΉνΈANDμ°μ°νλ©΄ λ§μ§λ§ μλ¦¬λ§ λ¨κ³ λλ¨Έμ§μ리λ λͺ¨λ 0μ΄λλ€.class OperatorEx31 { public static void main(String[] args) { int dec = 1234; int hex = 0xABCD; int mask = 0xF; System.out.printf("hex=%X%n", hex); System.out.printf("%X%n", hex & mask); hex = hex >> 4; System.out.printf("%X%n", hex & mask); hex = hex >> 4; System.out.printf("%X%n", hex & mask); hex = hex >> 4; System.out.printf("%X%n", hex & mask); } // mainμ λ }
6. κ·Έ μΈμ μ°μ°μ
6.1 쑰건 μ°μ°μ ? :
6.2 λμ μ°μ°μ = op=
lvalueμ rvalue
λμ μ°μ°μμ μΌμͺ½ νΌμ°μ°μλ₯Ό βlvalue(left value)βμ΄λΌ νκ³ , μ€λ₯Έμͺ½ νΌμ°μ°μλ₯Ό βrvalue(right value)βλΌκ³ νλ€.
μ°
6λ²
float celcius = (float) ((int) (5/9.0f * (fahrenheit - 32) * 1000 + 0.5) * 0.001);
Uploaded by N2T