Java ๊ธฐ์ด ๋ฌธ๋ฒ
Java ) java ์ฐ์ฐ์
Albosa2lol
2023. 5. 22. 20:29
Chapter 3 : ๐งฎ ๊ณ์ฐ ํ๊ธฐ (์ฐ์ฐ์)
-
- ์ฐ์ฐ์์ ํผ์ฐ์ฐ์์ ๋ํ ์ดํด
- ์ฐ์ฐ์ : ๋ง์ , ๋บ์ ์ฒ๋ผ ๊ณ์ฐํ ๊ธฐํธ โ
- ํผ์ฐ์ฐ์ : ์ฐ์ฐ์๋ก ์ธํด ๊ณ์ฐ๋๋ ์ซ์ ๐ข
- [์ฝ๋ ์ค๋ํซ] ๊ณ์ฐ ์ฝ๋
int x = 5; int y = 10; int z = x + y; // 5(ํผ์ฐ์ฐ์) +(์ฐ์ฐ์) 10(ํผ์ฐ์ฐ์) ๊ณ์ฐ System.out.println(z); // ์ถ๋ ฅ๊ฐ : 15
- ๊ณ์ฐํ ๋ ๊ณ์ฐ์ ๋์์ด ๋๋๊ฒ์ด ํผ์ฐ์ฐ์ ์ด๋ฉฐ, ๊ณ์ฐ์ ๋ชฉ์ ์ด ๋๋๊ฒ์ด ์ฐ์ฐ์
- ์ฐ์ฐ์ ์ข
๋ฅ
- ์ฐ์ฐ์๋ ์ฌ์น์ฐ์ฐ ์ธ์๋ ์ฌ๋ฌ๊ฐ์ง ์ฐ์ฐ์๊ฐ ์์ต๋๋ค.
์ฐ์ ์ฐ์ฐ์ + - * / % << >> ์ฌ์น ์ฐ์ฐ๊ณผ ๋นํธ์ฐ์ฐ ๋น๊ต ์ฐ์ฐ์ > < >= <= == != ํฌ๊ณ ์์๊ณผ ๊ฐ๊ณ ๋ค๋ฆ์ ๋น๊ต ๋ ผ๋ฆฌ ์ฐ์ฐ์ && ๋์ ์ฐ์ฐ์ = ++ —- ์ฐ๋ณ์ ๊ฐ์ ์ข๋ณ์ ์ ์ฅ, ์ฐ์ฐ ๋ณตํฉ ๋์ ๊ธฐํ ์ฐ์ฐ์ (type) ? : instance of ํ๋ณํ ์ฐ์ฐ์, ์ผํญ ์ฐ์ฐ์, instance of ์ฐ์ฐ์ - ์ฐ์ ์ฐ์ฐ์ - ์ฌ์น ์ฐ์ฐ ๋ฐ ๋นํธ์ฐ์ฐ์ ํฌํจํฉ๋๋ค. (๋นํธ์ฐ์ฐ์ ๋ค๋ฅธ ์ฑํฐ์์ ๋ค๋ค๋ณด์์.) - ์ฌ์น ์ฐ์ฐ์ ๊ณ์ฐํ ๊ฒฐ๊ณผ๊ฐ์ ์๋ตํฉ๋๋ค. - +
(๋ง์ ),-
(๋บ์ ),*
(๊ณฑ์ ),/
(๋๋์ /๋ชซ),%
(๋๋์ /๋๋จธ์ง)- [์ฝ๋ ์ค๋ํซ] ์ฌ์น ์ฐ์ฐ ```java // ์ฌ์น ์ฐ์ฐ System.out.println(4 + 2); // 6 System.out.println(4 - 2); // 2 System.out.println(4 * 2); // 8 System.out.println(4 / 2); // 2 System.out.println(5 / 2); // 2 System.out.println(2 / 4); // 0 System.out.println(4 % 2); // 0 System.out.println(5 % 2); // 1 // ์ฐ์ ์์ ์ฐ์ฐ System.out.println(2 + 2 * 2); // 6 System.out.println((2 + 2) * 2); // 8 System.out.println(2 + (2 * 2)); // 6 // ๋ณ์๋ฅผ ์ด์ฉํ ์ฐ์ฐ int a = 20; int b = 10; int c; // ๋ง์ c = a + b; System.out.println(c); // 30 // ๋บ์ c = a - b; System.out.println(c); // 10 // ๊ณฑ์ c = a * b; System.out.println(c); // 200 // ๋๋์ (๋ชซ) c = a / b; System.out.println(c); // 2 // ๋๋์ (๋๋จธ์ง) = ๋๋จธ์ง ์ฐ์ฐ c = a % b; System.out.println(c); // 0 ```
- ๋น๊ต ์ฐ์ฐ์
- ๊ฐ์ ํฌ๊ณ /์์์ ๋น๊ตํ๊ฑฐ๋ ๊ฐ๊ณ /๋ค๋ฆ ์ ๋น๊ตํ์ฌ ์ฐธ(true)/๊ฑฐ์ง(false) ๊ฐ์ธ boolean ๊ฐ์ ์ถ๋ ฅํฉ๋๋ค.
>
(ํฌ๋ค) ,<
(์๋ค),>=
(ํฌ๊ฑฐ๋ ๊ฐ๋ค),<=
(์๊ฑฐ๋ ๊ฐ๋ค),==
(๊ฐ๋ค),!=
(๋ค๋ฅด๋ค)- [์ฝ๋ ์ค๋ํซ] ๋น๊ต ์ฐ์ฐ
// ๋น๊ต ์ฐ์ฐ์ (์ฐธ์ด๋ฉด true, ๊ฑฐ์ง์ด๋ฉด false) System.out.println(10 > 9); // 10 ๋ 9 ๋ณด๋ค ํฌ๋ค (์ฐธ์ด๋ฉด true, ๊ฑฐ์ง์ด๋ฉด false) System.out.println(10 >= 9); // 10 ๋ 9 ๋ณด๋ค ํฌ๊ฑฐ๋ ๊ฐ๋ค (true) System.out.println(10 < 9); // 10 ๋ 9 ๋ณด๋ค ์๋ค (false) System.out.println(10 <= 9); // 10 ๋ 9 ๋ณด๋ค ์๊ฑฐ๋ ๊ฐ๋ค (false) System.out.println(10 == 10); // 10 ๋ 10 ์ ๊ฐ๋ค (true) System.out.println(10 == 9); // 10 ๋ 9 ๊ณผ ๊ฐ๋ค (false) System.out.println(10 != 10); // 10 ๋ 10 ์ ๊ฐ์ง ์๋ค (false) System.out.println(10 != 9); // 10 ๋ 9 ๊ณผ ๊ฐ์ง ์๋ค (true)
- ๋
ผ๋ฆฌ ์ฐ์ฐ์
- ๋น๊ต ์ฐ์ฐ์ ๊ฒฐ๊ณผ๊ฐ์ผ๋ก ๋ฐ์ ์ ์๋ boolean ๊ฐ์ ์ฐ๊ฒฐํ๋ ์ฐ์ฐ์ ์ ๋๋ค.
- ์กฐ๊ฑด์ ์ฐ๊ฒฐ ํ์์๋์ boolean ๊ฐ๋ค์ ์กฐํฉํ์ฌ ์ฐธ(true)/๊ฑฐ์ง(false) ๊ฐ์ธ boolean ๊ฐ์ ์ถ๋ ฅํฉ๋๋ค.
&&
(AND = ํผ์ฐ์ฐ์ ๋ชจ๋ ์ฐธ),||
(OR = ํผ์ฐ์ฐ์ ๋์ค ํ๋๋ผ๋ ์ฐธ),!
(ํผ์ฐ์ฐ์์ ๋ฐ๋ boolean ๊ฐ)- [์ฝ๋ ์ค๋ํซ] ๋ ผ๋ฆฌ ์ฐ์ฐ
// ๋ ผ๋ฆฌ ์ฐ์ฐ์ boolean flag1 = true; boolean flag2 = true; boolean flag3 = false; System.out.println(flag1); // true System.out.println(flag2); // true System.out.println(flag3); // false // ํผ์ฐ์ฐ์ ์ค ํ๋๋ผ๋ true ์ด๋ฉด true System.out.println(flag1 || flag2); // true System.out.println(flag1 || flag2 || flag3); // true // ํผ์ฐ์ฐ์ ๋ชจ๋ true ์ด๋ฉด true System.out.println(flag1 && flag2); // true (flag1, flag2 ๋ชจ๋ true ๋ผ์) System.out.println(flag1 && flag2 && flag3); // false (flag3์ false ๋ผ์) // And ์ฐ์ฐ System.out.println((5 > 3) && (3 > 1)); // 5 ๋ 3 ๋ณด๋ค ํฌ๊ณ , 3 ์ 1 ๋ณด๋ค ํฌ๋ค (true) System.out.println((5 > 3) && (3 < 1)); // 5 ๋ 3 ๋ณด๋ค ํฌ๊ณ , 3 ์ 1 ๋ณด๋ค ์๋ค (false) // Or ์ฐ์ฐ System.out.println((5 > 3) || (3 > 1)); // 5 ๋ 3 ๋ณด๋ค ํฌ๊ฑฐ๋, 3 ์ 1 ๋ณด๋ค ํฌ๋ค (true) System.out.println((5 > 3) || (3 < 1)); // 5 ๋ 3 ๋ณด๋ค ํฌ๊ฑฐ๋, 3 ์ 1 ๋ณด๋ค ์๋ค (true) System.out.println((5 < 3) || (3 < 1)); // 5 ๋ 3 ๋ณด๋ค ์๊ฑฐ๋, 3 ์ 1 ๋ณด๋ค ์๋ค (false) // System.out.println(1 < 3 < 5); // ๋ถ๊ฐ๋ฅํ ์ฝ๋ // ๋ ผ๋ฆฌ ๋ถ์ ์ฐ์ฐ์ System.out.println(!flag1); // false (flag1 ๊ฐ์ ๋ฐ๋) System.out.println(!flag3); // true (flag3 ๊ฐ์ ๋ฐ๋) System.out.println(!(5 == 5)); // false System.out.println(!(5 == 3)); // true
- ๋์
์ฐ์ฐ์
- ๋ณ์๋ฅผ ๋ฐ๋ก ์ฐ์ฐํด์ ๊ทธ์๋ฆฌ์์ ์ ์ฅํ๋ ์ฐ์ฐ์
- ๊ธฐ๋ณธ ๋์
์ฐ์ฐ์์ธ
=
์ ๋ค๋ฅธ ์ฐ์ฐ์ ํจ๊ป์ฐ๋ ๋ณตํฉ ๋์ ์ฐ์ฐ์๊ฐ ์์ต๋๋ค. (+=
,-=
,*=
…) - ๋ณตํฉ ๋์ ์ฐ์ฐ์๋ ๊ธฐ๋ณธ ๋์ ์ฐ์ฐ์๋ฅผ ์ฌํํ๊ฒ ์์ฑํ๊ฒ ํด์ฃผ๋๊ฒ์ด์ง ๊ธฐ๋ฅ์ ๊ฐ์ต๋๋ค.
- ์ถ๊ฐ๋ก,
+= 1
๋++
๊ณผ ๋์ผํฉ๋๋ค. (ํผ์ฐ์ฐ์์ 1 ๋ํด์ฃผ๊ธฐ) - ๋๊ฐ์ด
-= 1
์—-
์ ๋์ผํฉ๋๋ค. (ํผ์ฐ์ฐ์์ 1 ๋นผ์ฃผ๊ธฐ) - [์ฝ๋ ์ค๋ํซ] ๋์ ์ฐ์ฐ์
// ๋์ ์ฐ์ฐ์ int number = 10; number = number + 2; System.out.println(number); // 12 number = number - 2; System.out.println(number); // 10 number = number * 2; System.out.println(number); // 20 number = number / 2; System.out.println(number); // 10 number = number % 2; System.out.println(number); // 0 number = number++; System.out.println(number); // 2 number = number--; System.out.println(number); // 0 // ๋ณตํฉ ๋์ ์ฐ์ฐ์ number = 10; number += 2; System.out.println(number); // 12 number -= 2; System.out.println(number); // 10 number *= 2; System.out.println(number); // 20 number /= 2; System.out.println(number); // 10 number %= 2; System.out.println(number); // 0
- ์ฐ์ฐ์์ ํผ์ฐ์ฐ์์ ๋ํ ์ดํด
<aside>
๐ฅ **๋์
์ฐ์ฐ์ ์ค์ ์ฆ๊ฐ ์ฐ์ฐ์ ์ธ๋ ์ฃผ์ํ ์ !**
- `++` ๋๋ `—-` ๋ฅผ ๋ถ์ด๋ฉด ํผ์ฐ์ฐ์๊ฐ 1 ๋ํด์ง๊ฑฐ๋ 1 ๋นผ๊ธฐ๊ฐ ๋๋ค๊ณ ๋ง์๋๋ ธ๋๋ฐ์.
- ์ฃผ์ํ ์ ์, ํผ์ฐ์ฐ์ ๋ค์ ๋ถ์ด๋, ์์ ๋ถ์ด๋์ ๋ฐ๋ผ์ ์ฐ์ฐ์์๊ฐ ๋ฌ๋ผ์ง๋๋ค!!
| ์ฐ์ฐ์ | ์ฐ์ฐ์ ์์น | ๊ธฐ๋ฅ | ์ฐ์ฐ ์ |
| --- | --- | --- | --- |
| ++ | ++{ํผ์ฐ์ฐ์} | ์ฐ์ฐ ์ ์ ํผ์ฐ์ฐ์์ 1 ๋ํด์ค๋๋ค. | val = ++num;
num๊ฐ+1 ํ์ val๋ณ์์ ์ ์ฅ |
| ++ | {ํผ์ฐ์ฐ์}++ | ์ฐ์ฐ ํ์ ํผ์ฐ์ฐ์์ 1 ๋ํด์ค๋๋ค. | val = num++;
num๊ฐ์ val๋ณ์์ ์ ์ฅ ํ num+1 |
| — | —{ํผ์ฐ์ฐ์} | ์ฐ์ฐ ์ ์ ํผ์ฐ์ฐ์์ 1 ๋นผ์ค๋๋ค. | val = —num;
num๊ฐ-1 ํ์ val๋ณ์์ ์ ์ฅ |
| — | {ํผ์ฐ์ฐ์}— | ์ฐ์ฐ ํ์ ํผ์ฐ์ฐ์์ 1 ๋นผ์ค๋๋ค. | val = num—;
num๊ฐ์ val๋ณ์์ ์ ์ฅ ํ num-1 |
- ์ด์ฒ๋ผ ๋์
์ฐ์ฐํ ๋ ๋ฟ๋ง์๋๋ผ ์ฐ์ฐ์ ์ง์ ํ ๋๋ ๋ง์ฐฌ๊ฐ์ง๋ก ์ /ํ์ ์ฉ์ด ๋๋ฉ๋๋ค.
- ์ค์ต ์ฝ๋๋ฅผ ํตํด ์ค์ตํด๋ณผ๊น์?
- [์ฝ๋ ์ค๋ํซ] ๋์
์ฆ๊ฐ ์ฐ์ฐ์
```java
// ๋์
์ฆ๊ฐ ์ฐ์ฐ์
public class Main {
public static void main(String[] args) {
int a = 10;
int b = 10;
int val = ++a + b--; // a ๋ ์ฐ์ฐ์ ์ +1, b ๋ ์ฐ์ฐํ์ -1
System.out.println(a); // 11
System.out.println(b); // 9
System.out.println(val); // 21
// 11 + 9 ๊ฐ ์ 21์ด ๋์ค๋๊ฑฐ์ฃ ??
// ๊ทธ ์ด์ ๋
// a ๋ val ์ฐ์ฐ์ ์ ++ ๊ฐ ์ํ๋์ด์ 11๋ก ์ฐ์ฐ๋์์ง๋ง
// b ๋ val ์ฐ์ฐํ์ -- ๊ฐ ์ํ๋์ด์ ๊ธฐ์กด๊ฐ์ด 10์ผ๋ก ์ฐ์ฐ๋ ํ -- ๊ฐ ์ํ๋์์ต๋๋ค.
// ๋ฐ๋ผ์ ์ฐ์ฐ๋ a๊ฐ์ธ 11๊ณผ ์ฐ์ฐ๋๊ธฐ์ b๊ฐ์ธ 10์ด ๋ํด์ ธ์ 21์ด ๋๊ฒ๋๋ค!
int c = a--; // c ์ a ๊ฐ ๋์
ํ a-1 (์ฆ, a=10, c=11)
int d = ++b; // b ๊ฐ +1 ํ์ d ์ ๋์
(์ฆ, b=10, d=10)
int val = c-- * ++d; // c ๋ ์ฐ์ฐํ์ -1, d ๋ ์ฐ์ฐ์ ์ +1
System.out.println(a); // 10
System.out.println(b); // 10
System.out.println(c); // 11
System.out.println(d); // 10
System.out.println(val); // 11 * 11 = 121
// 11 * 10 ์ด ์ 121์ด ๋์ค๋๊ฑฐ์ฃ ??
// ๊ทธ ์ด์ ๋
// c ๋ val ์ฐ์ฐํ์ -- ๊ฐ ์ํ๋์ด์ ๊ธฐ์กด๊ฐ์ด 11๋ก ์ฐ์ฐ๋ ํ -- ๊ฐ ์ํ๋์์ง๋ง
// d ๋ val ์ฐ์ฐ์ ์ ++ ๊ฐ ์ํ๋์ด์ 11๋ก ์ฐ์ฐ๋์์ต๋๋ค.
// ๋ฐ๋ผ์ ์ฐ์ฐ์ a๊ฐ์ธ 11๊ณผ ์ฐ์ฐ๋ b๊ฐ์ธ 11์ด ๊ณฑํด์ ธ์ 121์ด ๋๊ฒ๋๋ค!
}
}
```
</aside>
- ๊ธฐํ ์ฐ์ฐ์
- ํ๋ณํ ์ฐ์ฐ์
- 1์ผ์ฐจ ๊ฐ์์์ ๋ฐฐ์ด๋ด์ฉ์ผ๋ก ๊ดํธ ์์ ๋ณํํ ํ์
์ ๋ฃ์ผ๋ฉด ํผ์ฐ์ฐ์์ ํ์
์ด ๋ณ๊ฒฝ ๋ฉ๋๋ค.
```java
// ํ๋ณํ ์ฐ์ฐ์
int intNumber = 93 + (int) 98.8; // 93 + 98
double doubleNumber = (double) 93 + 98.8; // 93.0 + 98.8
```
- ์ผํญ ์ฐ์ฐ์
- ๋น๊ต ์ฐ์ฐ์ ๊ฒฐ๊ณผ๊ฐ์ ๋ฐ๋ผ ์๋ตํ ๊ฐ์ ์ง์ ์ง์ ํ ์ ์๋ ์ฐ์ฐ์ ์
๋๋ค.
- ์ผํญ ์ฐ์ฐ์๋ 3๊ฐ์ง ํผ์ฐ์ฐ์๊ฐ ์กด์ฌํ์ฌ ์ผํญ ์ฐ์ฐ์ ๋ผ๊ณ ํฉ๋๋ค. (`์กฐ๊ฑด`/`์ฐธ๊ฒฐ๊ณผ`/`๊ฑฐ์ง๊ฒฐ๊ณผ`)
- `(์กฐ๊ฑด)` `?` `(์ฐธ๊ฒฐ๊ณผ)` `:` `(๊ฑฐ์ง๊ฒฐ๊ณผ)`
```java
// ์ผํญ ์ฐ์ฐ์
int x = 1;
int y = 9;
boolean b = (x == y) ? true : false;
System.out.println(b); // false
String s = (x != y) ? "์ ๋ต" : "๋ก";
System.out.println(s); // ๋ก
int max = (x > y) ? x : y;
System.out.println(max); // 9
int min = (x < y) ? x : y;
System.out.println(min); // 1
```
- instance of ์ฐ์ฐ์
- 3์ฃผ์ฐจ์ ๋ฐฐ์ธ ํด๋์ค๊ด๋ จ ๋ด์ฉ์ผ๋ก ํด๋น ์ฃผ์ฐจ๋ ๋ฐฐ์ฐ๋๋ก ํ๊ฒ ์ต๋๋ค.
- ๊ฐ๋จํ ์ค๋ช
๋๋ฆฌ๋ฉด ํผ์ฐ์ฐ์๊ฐ ์กฐ๊ฑด์ ๋ช
์๋ ํด๋์ค์ ๊ฐ์ฒด์ธ์ง ๋น๊ตํ์ฌ ์ฐธ/๊ฑฐ์ง์ ์๋ตํด์ฃผ๋ ์ฐ์ฐ์ ์
๋๋ค.
- `(๊ฐ์ฒด๋ช
)` `instance of` `(ํด๋์ค๋ช
)`
-
- ์ฐ์ฐ์ ์ฐ์ ์์
- ์ฐ์ฐ์ ์ฌ๋ฌ๊ฐ๊ฐ ํจ๊ป ์๋ ์ฐ์ฐ์ ๊ณ์ฐํ ๋๋ ์ฐ์ ์์๊ฐ ์์ต๋๋ค.
- ์ ์ฐ์ ์์์ ๋ฐ๋ผ์ ์ต์ข ์ ์ธ ์๋ต๊ฐ์ด ๊ฒฐ์ ๋ฉ๋๋ค.
- ๋จ, ๊ดํธ๋ก ๊ฐ์ธ์ฃผ๋ฉด ๊ดํธ์์ ์ฐ์ฐ์ด ์ต์ฐ์ ์์๋ก ๊ณ์ฐ๋ฉ๋๋ค.
- [์ฝ๋ ์ค๋ํซ] ์ฐ์ฐ์ ์ฐ์ ์์
// ์ฐ์ฐ์ ์ฐ์ ์์ int x = 2; int y = 9; int z = 10; boolean result = x < y && y < z; // <,> ๋น๊ต์ฐ์ฐ์ ๊ณ์ฐ ํ && ๋ ผ๋ฆฌ ์ฐ์ฐ์ ๊ณ์ฐ System.out.println(result); // true result = x + 10 < y && y < z; // +10 ์ฐ์ ์ฐ์ฐ์ ๊ณ์ฐ ํ <,> ๋น๊ต์ฐ์ฐ์ ๊ณ์ฐ ํ && ๋ ผ๋ฆฌ ์ฐ์ฐ์ ๊ณ์ฐ System.out.println(result); // false result = x + 2 * 3 > y; // ์ฐ์ ์ฐ์ฐ์ ๊ณฑ์ผ > ๋ง์ ์์ผ๋ก ๊ณ์ฐ ํ > ๋น๊ต์ฐ์ฐ์ ๊ณ์ฐ System.out.println(result); // false (8>9) result = (x + 2) * 3 > y; // ๊ดํธ์ ๋ง์ ์ฐ์ฐ ํ ๊ดํธ ๋ฐ ๊ณฑ์ ๊ณ์ฐ ํ > ๋น๊ต์ฐ์ฐ์ ๊ณ์ฐ System.out.println(result); // true (12>9)
- ๐ ์ฐ์ฐ์ ์ฐ์ ์์ : ์ฐ์ > ๋น๊ต > ๋ ผ๋ฆฌ > ๋์
- ์ฐ์ ๋ณํ
- ๐ ์ฐ์ฐ ์ ์ ํผ์ฐ์ฐ์์ ํ์
์ ์ผ์น์ํค๋ ๊ฒ
- ๋ ํผ์ฐ์ฐ์์ ํ์ ์ ๊ฐ๊ฒ ์ผ์น์ํจ๋ค. (๋์ค์ ์ ์ฅ๊ณต๊ฐ ํฌ๊ธฐ๊ฐ ๋ ํฐ ํ์ ์ผ๋ก ์ผ์น
- ํผ์ฐ์ฐ์์ ํ์
์ด
int
๋ณด๋ค ์์short
ํ์ ์ด๋ฉดint
๋ก ๋ณํ - ํผ์ฐ์ฐ์์ ํ์
์ด
long
๋ณด๋ค ์์int
,short
ํ์ ์ด๋ฉดLong
์ผ๋ก ๋ณํ - ํผ์ฐ์ฐ์์ ํ์
์ด
float
๋ณด๋ค ์์long
,int
,short
ํ์ ์ด๋ฉดfloat
์ผ๋ก ๋ณํ - ํผ์ฐ์ฐ์์ ํ์
์ด
double
๋ณด๋ค ์์float
,long
,int
,short
ํ์ ์ด๋ฉดdouble
์ผ๋ก ๋ณํ - ์ด์ฒ๋ผ, ๋ณ์์ฌ๋ฌ๊ฐ๋ฅผ ์ฐ์ฐํ์๋ ๊ฒฐ๊ณผ๊ฐ์ ํผ์ฐ์ฐ์ ์ค ํํ ๋ฒ์๊ฐ ๊ฐ์ฅ ํฐ ๋ณ์ ํ์ ์ ๊ฐ์ง๊ฒ ๋ฉ๋๋ค.
- [์ฝ๋ ์ค๋ํซ] ์ฐ์ ๋ณํ
// ์ฐ์ ๋ณํ public class Main { public static void main(String[] args) { short x = 10; int y = 20; int z = x + y; // ๊ฒฐ๊ณผ๊ฐ์ ๋ ํฐ ํํํ์ ์ธ int ํ์ ์ ๋ณ์๋ก๋ง ์ ์ฅํ ์ ์์ต๋๋ค. long lx = 30L; long lz = z + lx; // ๊ฒฐ๊ณผ๊ฐ์ ๋ ํฐ ํํํ์ ์ธ long ํ์ ์ ๋ณ์๋ก๋ง ์ ์ฅํ ์ ์์ต๋๋ค. float fx = x; // ๊ฒฐ๊ณผ๊ฐ์ ๋ ํฐ ํํํ์ ์ธ float ํ์ ์ ๋ณ์๋ก๋ง ์ ์ฅํ ์ ์์ต๋๋ค. float fy = y; // ๊ฒฐ๊ณผ๊ฐ์ ๋ ํฐ ํํํ์ ์ธ float ํ์ ์ ๋ณ์๋ก๋ง ์ ์ฅํ ์ ์์ต๋๋ค. float fz = z; // ๊ฒฐ๊ณผ๊ฐ์ ๋ ํฐ ํํํ์ ์ธ float ํ์ ์ ๋ณ์๋ก๋ง ์ ์ฅํ ์ ์์ต๋๋ค. System.out.println(lz); System.out.println(fx); System.out.println(fy); System.out.println(fz); } }
- ๋นํธ ์ฐ์ฐ
- Byte ๋ฅผ 8๋ฑ๋ถํ๊ฒ Bit ๋ผ๊ณ ๋ง์ ๋๋ฆฐ๊ฑฐ ๊ธฐ์ตํ์์ฃ ?
- Bit ๋ 0,1 ๋์ค์ ํ๋์ ๊ฐ๋ง์ ์ ์ฅํ๋ ์ปดํจํฐ๊ฐ ์ ์ฅ(ํํ)๊ฐ๋ฅํ ๊ฐ์ฅ ์์ ๋จ์๋ผ๊ณ ๋ง์๋๋ ธ์ต๋๋ค.
- ์ปดํจํฐ์ ๊ฐ์ฅ์์ ๋จ์์ธ Bit์ด๊ธฐ ๋๋ฌธ์ ์ฐ์ฐ์ค์์ Bit ์ฐ์ฐ์ด ์ ์ผ ๋น ๋ฆ ๋๋ค.
- ๋ฌผ๋ก ์ด์ ์ ๋ฐฐ์ด๋๋ก 0,1 ๊ฐ์ผ๋ก ์ฐ์ ์ฐ์ฐ์ ํ๊ฑฐ๋, ๋น๊ต์ฐ์ฐ์ ํ ์ ์์ง๋ง ๋นํธ ์ฐ์ฐ์ ํตํด ์๋ฆฌ์๋ฅผ ์ฎ๊ธธ์๋ ์์ต๋๋ค.
- ์ด์ฒ๋ผ Bit์ ์๋ฆฌ์๋ฅผ ์ฎ๊ธฐ๋ ๊ฒ์ ๋นํธ ์ฐ์ฐ์ด๋ผ๊ณ ํฉ๋๋ค.
- <<(์ผ์ชฝ์ผ๋ก ์๋ฆฌ์ ์ฎ๊ธฐ๊ธฐ), >>(์ค๋ฅธ์ชฝ์ผ๋ก ์๋ฆฌ์ ์ฎ๊ธฐ๊ธฐ)
- 0,1 ์ 2์ง์ ๊ฐ์ด๊ธฐ ๋๋ฌธ์,
- ์๋ฆฌ์๋ฅผ ์ผ์ชฝ์ผ๋ก ์ฎ๊ธฐ๋ ํ์๋งํผ 2์ ๋ฐฐ์๋ก ๊ณฑ์ ์ด ์ฐ์ฐ๋๋๊ฒ๊ณผ ๋์ผํฉ๋๋ค.
- ์๋ฆฌ์๋ฅผ ์ค๋ฅธ์ชฝ์ผ๋ก ์ฎ๊ธฐ๋ ํ์๋งํผ 2์ ๋ฐฐ์๋ก ๋๋์ ์ด ์ฐ์ฐ๋๋๊ฒ๊ณผ ๋์ผํฉ๋๋ค.
- [์ฝ๋ ์ค๋ํซ] ๋นํธ ์ฐ์ฐ
- ์ฐ์ฐ์ ์ฐ์ ์์
// ๋นํธ ์ฐ์ฐ
// ์ฐธ๊ณ , 3์ ์ด์ง์๊ฐ์ 11(2) ์
๋๋ค. 12์ ์ด์ง์๊ฐ์ 1100(2) ์
๋๋ค.
// (2) ํ๊ธฐ๋ ์ด ์ซ์๊ฐ ์ด์ง์๊ฐ์ด๋ผ๋ ํ์ ์
๋๋ค.
System.out.println(3 << 2);
// 3์ ์ด์ง์๊ฐ์ธ 11(2) ์์ ์ผ์ชฝ์ผ๋ก 2๋ฒ ์ฎ๊ฒจ์ ธ์ 1100(2) ์ธ 12๊ฐ์ด ๋ฉ๋๋ค.
System.out.println(3 >> 1);
// 3์ ์ด์ง์๊ฐ์ธ 11(2) ์์ ์ค๋ฅธ์ชฝ์ผ๋ก 1๋ฒ ์ฎ๊ฒจ์ ธ์ 1(2) ์ธ 1 ๊ฐ์ด ๋ฉ๋๋ค.