Chapter 02 - λ³μ
λ³μ(variable)
λ³μλ?
λ¨ νλμ κ°μ μ μ₯ν μ μλ λ©λͺ¨λ¦¬ 곡κ°
μλ‘μ΄ κ°μ μ μ₯νλ©΄ κΈ°μ‘΄μ κ°μ μ¬λΌμ§
λ³μμ μ μΈκ³Ό μ΄κΈ°ν
(λ³μ νμ ) (λ³μ μ΄λ¦);
- λ³μ νμ
μ μ μ₯λ νμ
- μλ°λ μ μν, μ€μν, λ¬Έμν ...
- λ³μ μ΄λ¦μ λ©λͺ¨λ¦¬ 곡κ°μ λΆμ μ΄λ¦
- μ μ₯λ κ°μ μ½μ΄μ¬ λ μ¬μ©
- μλ‘ κ΅¬λ³λμ΄μΌ ν¨
- μ μΈ μ λ³μ νμ μ μλ§μ ν¬κΈ°μ μ μ₯ 곡κ°μ΄ ν보
λ³μμ μ΄κΈ°ν
- μ΄κΈ°νλ
λ³μλ₯Ό μ¬μ©νκΈ° μ μ μ²μμΌλ‘ κ°μ μ μ₯
- λ©λͺ¨λ¦¬λ μ¬λ¬ νλ‘κ·Έλ¨μ΄ 곡μ νλ μμμ΄λ―λ‘ νμ
- μ μ μλ μ°λ κΈ° κ°μ΄ λ¨μμμ μλ μκΈ° λλ¬Έ
- ν΄λμ€ λ³μμ μΈμ€ν΄μ€ λ³μλ μ΄κΈ°ν μλ΅ κ°λ₯
- μ§μ λ³μλ λ°λμ μ΄κΈ°νλ₯Ό ν΄μΌ ν¨
- λμ
μ°μ°μ μ¬μ©
- μνκ³Όλ λ€λ₯΄κ² μ€λ₯Έμͺ½μ κ°μ μΌμͺ½μ μ μ₯νλΌλ λ»
- μ½€λ§λ‘ μ¬λ¬ μ€μ ν μ€μ μ μΈλ κ°λ₯
int a; int b; // int a, b; int x = 0; int y = 0; int x = 0, y = 0;
λ λ³μμ κ° κ΅ννκΈ°
int x = 10;
int y = 20;
x = y;
y = x;
μμ κ²°κ³Όλ xμ κ°μ΄ yμ κ°μΌλ‘ λ°λμκΈ° λλ¬Έμ μμ©μλ€.
tmpλ₯Ό μ μΈ ν λ³κ²½ (λ¬Όκ³Ό μ°μ κ° λ΄κΈ΄ μ»΅μ λΉ μ»΅μ μΆκ°νλ― ...)
int x = 10;
int y = 20;
int tmp;
tmp = x;
x = y;
y = x;
λ§μ μ°μ°μλ λ κ°μ λνκΈ°λ νμ§λ§, λ¬Έμμ΄κ³Ό μ«μλ₯Ό κ²°ν©νκΈ°λ ν¨
- λ¬Έμμ΄ -> ν°λ°μ΄ν("")λ‘ λ¬Άμ μ°μλ λ¬Έμ
- ex) System.out.println("x:" + 10) -> System.out.println("x:10")
λ³μμ λͺ λͺ κ·μΉ
λ³μμ μ΄λ¦μ²λΌ νλ‘κ·Έλλ°μμ μ¬μ©νλ λͺ¨λ μ΄λ¦μ μλ³μ
μλ³μμ κ·μΉ
- λμλ¬Έμκ° κ΅¬λΆ & κΈΈμ΄ μ ν x
- μμ½μ΄λ μ¬μ© X
- trueλ X, Trueλ O
- μμ½μ΄λ λ§€μ° λ§μΌλ―λ‘ μ°¨μ°¨ μ΅νκ°μΌ ν¨
- μμ½μ΄λ€μ ν΄λμ€, λ³μ, λ©μλμ μ΄λ¦μΌλ‘ μ¬μ© X
- μ«μλ‘ μμ X
- νΉμλ¬Έμλ '_'μ '&'λ§ νμ©
μλ° νλ‘κ·Έλλ¨Έλ€μκ² κΆμ₯νλ κ·μΉ
- ν΄λμ€ μ΄λ¦μ 첫 κΈμλ νμ λλ¬Έμ
- ν΄λμ€ μ΄λ¦μ ASCII μ½λλ‘ (μ λμ½λλ₯Ό μΈμνμ§ λͺ»νλ OSλ₯Ό μν΄)
- μ¬λ¬ λ¨μ΄λ‘ μ΄λ£¨μ΄μ§ μ΄λ¦μ λ¨μ΄μ 첫 κΈμλ₯Ό λλ¬Έμ
- μμμ μ΄λ¦μ λͺ¨λ λλ¬Έμ & μ¬λ¬ λ¨μ΄μΌ μ '_'
- ex) PI, MAX_NUMBER
- μ κ·μΉλ€μ κ°λ°μλ€ μ¬μ΄μ μ묡μ μ½μ
- νΉλ³ν λ°©μμΌλ‘ μλ³μλ₯Ό μμ±ν΄μΌ ν λ 미리 κ·μΉμ μΈμμ μΌκ΄λκ² μ μ©ν κ²
- coding convention
- λ³μμ μ΄λ¦μ 짧μΌλ©΄ μ’μ§λ§ κΈΈλλΌλ μ©λλ₯Ό μκΈ° μ½κ²
μλ―Έ μλ μ΄λ¦
μΌλ‘ ν κ²
λ³μμ νμ
- κ°?
- λ¬Έμμ μ«μ(μ μ, μ€μ)
κΈ°λ³Ένκ³Ό μ°Έμ‘°ν
κΈ°λ³Έν : λ Όλ¦¬ν(boolean), λ¬Έμν(char), μ μν(byte, short, int, long), μ€μν(float, double)
μ°Έμ‘°ν : κ°μ²΄μ μ£Όμλ₯Ό μ μ₯, 8κ°μ κΈ°λ³Ένμ μ μΈν λλ¨Έμ§
μ°Έμ‘° λ³μλ₯Ό μ μΈνλ λ°©λ²
ν΄λμ€μ΄λ¦ λ³μμ΄λ¦;
ex) Date today = new Date();
- newμ μμ± κ²°κ³Όλ κ°μ²΄μ μ£Όμ
- λμ μ°μ°μ(=)μ μν΄ μ°Έμ‘° λ³μ todayμ κ°μ²΄μ μ£Όμκ° μ μ₯
μλ£ν vs νμ
- νμ μ΄ μλ£νμ ν¬ν¨νλ λμ μλ―Έ
- μ°Έμ‘°ν λ³μλ νμ μ, κΈ°λ³Ένμ μλ£νμ΄λ μ©μ΄λ₯Ό μ¬μ©
κΈ°λ³Έν
9κ°μ νμ
- λ
Όλ¦¬ν
- boolean (true or false)
- λ¬Έμν
- char (λ¬Έμλ₯Ό μ μ₯νλ λ° μ¬μ©)
- μ μν
- byte, short, int, long (μ μλ₯Ό μ μ₯νλ λ° μ¬μ©, shortλ CμΈμ΄μμ νΈνμ μν΄ μμ±)
- μ€μν
- float, double (μ€μλ₯Ό μ μ₯νλ λ° μ¬μ©)
μ μμμ intλ₯Ό CPUκ° κ°μ₯ ν¨μ¨μ μΌλ‘ μ²λ¦¬
- λ©λͺ¨λ¦¬λ₯Ό μλΌκΈ° μν΄μ byteλ short μ¬μ©
floatλ³΄λ¨ doubleμ΄ λμ μ λ°λ (floatμ μ λ°λλ 7μ리)
κΈ°λ³Έ μλ£νμ μ’ λ₯μ ν¬κΈ°
- boolean -> 1byte
- char -> 2byte (μ λμ½λ)
- byte -> 1byte
- short -> 2byte (intμ μ λ°)
- int -> 4byte
- long -> 8byte (intμ 2λ°°)
- float -> 4byte
- double -> 8byte
μμμ 리ν°λ΄
μμ
- λ³μμ λ§μ°¬κ°μ§λ‘
κ°μ μ μ₯ν μ μλ κ³΅κ° & νλ² κ°μ μ μ₯νλ©΄ λ³κ²½ X
- final ν€μλλ₯Ό μμ λΆμ¬μ€μΌ ν¨
- JDK1.6λΆν° μ μΈκ³Ό λμμ μ΄κΈ°ννμ§ μμλ λμ§λ§ μ¬λ§νλ©΄ μ μΈκ³Ό λμμ μ΄κΈ°νν κ²
- μμμ μ΄λ¦μ λͺ¨λ λλ¬Έμ (μ¬λ¬ λ¨μ΄μ κ²½μ° '_' μ¬μ©)
final int MAX_SPEEP = 100;
리ν°λ΄
- 12, 123, 3.14, 'A' μ κ°μ κ°λ€μ΄ 리ν°λ΄
- 리ν°λ΄μ λ³΄ν΅ μκ³ μλ μμ
λ³μ : νλμ κ°μ μ μ₯νκΈ° μν 곡κ°
μμ : κ°μ ν λ²λ§ μ μ₯ν μ μλ 곡κ°
리ν°λ΄ : κ·Έ μμ²΄λ‘ κ°μ μλ―Ένλ κ²
int year = 2014;
final int MAX_VALUE = 100;
// 2014, 100 -> 리ν°λ΄
// year -> λ³μ
// MAX_VALUE -> μμ
μμκ° νμν μ΄μ
- 리ν°λ΄μ
μλ―Έ μλ μ΄λ¦
μ λΆμ¬μ μ½λμ μ΄ν΄ λ° μμ μ μ½κ² νκΈ° μν¨ - ex) μΌκ°νμ ν, λμ΄λ₯Ό μμλ‘ μ μΈ ν νμν λ μ΄κΈ°ν μ½λλ₯Ό λ³κ²½
리ν°λ΄μ νμ κ³Ό μ λ―Έμ¬
- μ μνμ κ²½μ°, long νμ
μ 리ν°λ΄μ μ λ―Έμ¬ 'l' λλ 'L'μ λΆμ (1κ³Ό μ ν·κ°λ¦¬κ² 'L' κΆμ )
- μ λ―Έμ¬κ° μμ μ int νμ μ 리ν°λ΄
- byteμ shortλ λ³λλ‘ μ‘΄μ¬ x (int νμ μ 리ν°λ΄λ‘ μ μ₯)
- 8μ§μλ μμ 0, 16μ§μλ 0x λλ 0X, 2μ§μλ 0b λλ 0Bμ μ λμ¬
- μ€μνμ κ²½μ° float νμ
μ 'f', doubel νμ
μλ 'd'
- μ λ―Έμ¬κ° μμΌλ©΄ double νμ 리ν°λ΄λ‘ μΈμ
- 10μ μ κ³±μ e, Eλ‘ λνλ
- μ μ°μ΄μ§λ μμ§λ§ 2μ μ κ³±μ μλ―Έλ‘ pλ μ¬μ©
- ex) 0x1p1 = (1 x 16^0) x 2^1
νμ μ λΆμΌμΉ
νμ μ΄ λ¬λΌλ μ μ₯ λ²μκ° λμ νμ μ μ’μ νμ μ κ°μ μ μ₯νλ κ²μ νμ©
- κ·Έ λ°λλ μ»΄νμΌ μλ¬
λ¬Έμ 리ν°λ΄κ³Ό λ¬Έμμ΄ λ¦¬ν°λ΄
λ¬Έμ 리ν°λ΄ : μμλ°μ΄νλ‘ λ¬Έμ νλλ₯Ό κ°μΌ κ²
λ¬Έμμ΄ λ¦¬ν°λ΄ : ν° λ¬Έμμ΄λ‘ κ°μΌ κ² (λ λ¬Έμ μ΄μμ λ¬Έμμ΄μ)
- λ¬Έμμ΄ λ¦¬ν°λ΄μ λΉ λ¬Έμμ΄μ΄ νμ©
- λ¬Έμλ λ°λμ '' μμ νλμ λ¬Έμ νμ
- String name = "test"λ String name = new String("test")μ κ°μ
- λ§μ
μ°μ°μ μ¬μ© κ°λ₯
- νΌμ°μ°μ λͺ¨λ μ«μμΌ λ μ«μλ₯Ό λν¨
- μ΄λ νμͺ½μ΄λΌλ String μ΄λ©΄ λλ¨Έμ§ ν μͺ½λ StringμΌλ‘ λ³ν ν String κ²°ν©
- μΌμͺ½μμ μ€λ₯Έμͺ½ λ°©ν₯μΌλ‘ μννκΈ° λλ¬Έμ κ²°ν© μμμ λ°λΌ κ²°κ³Όκ° λ¬λΌμ§
νμνλ μΆλ ₯ - printf()
println() λ³΄λ€ κ°μ μ¬λ¬ νμμΌλ‘ μΆλ ₯ κ°λ₯
- μ§μμκ° νμ
- μ§μμμ μΆλ ₯λ κ°μ μμμ κ°μκ° μΌμΉν΄μΌ λκ³ μ νμ μλ€.
- println()κ³Ό λ¬λ¦¬ μ€λ°κΏμ΄ μμΌλ―λ‘
'%n'
μ λ£μ΄μ€μΌ νλ€.- OSλ§λ€ μ€λ°κΏ λ¬Έμκ° λ€λ₯Ό μ μμΌλ―λ‘ '\n'보λ€λ '%n'
- μμ£Ό μ¬μ©λλ μ§μμ
- %b : λΆλ¦¬μΈ νμμΌλ‘ μΆλ ₯
- %d : 10μ§ μ μμ νμμΌλ‘ μΆλ ₯
- %o : 8μ§ μ μμ νμμΌλ‘ μΆλ ₯
- %x, %X : 16μ§ μ μμ νμμΌλ‘ μΆλ ₯
- %f : λΆλ μμμ νμμΌλ‘ μΆλ ₯
- %e, %E : μ§μ ννμμ νμμΌλ‘ μΆλ ₯
- %c : λ¬Έμλ‘ μΆλ ₯
- %s : λ¬Έμμ΄λ‘ μΆλ ₯
- μ§μμ μ¬μ΄μ μ«μλ₯Ό μΆκ°νλ©΄ μνλ λ§νΌμ μΆλ ₯ 곡κ°μ ν보νκ±°λ λ¬Έμμ΄μ μΌλΆλ§ μΆλ ₯
- μ€μν μΌ λ
%μ 체 μ리.μμμ μλ μ리f
- N : μ΅μ NκΈμ μΆλ ₯ κ³΅κ° ν보 (μ°μΈ‘ μ λ ¬)
- -N : μ΅μ N κΈμ μΆλ ₯ κ³΅κ° ν보 (μ’μΈ‘ μ λ ¬)
- . : μΌμͺ½μμ N κΈμλ§ μΆλ ₯
- μ€μν μΌ λ
νλ©΄μμ μ λ ₯λ°κΈ° -Scanner
Scannerμ λν 본격μ μΈ νμ΅ μ κ°μ Έμμ μ¬μ©νλ λ°©λ²
- import java.util.*; μ μΈ
- Scanner scanner = new Scanner(System.in); μΌλ‘ κ°μ²΄ μμ±
- scanner.nextLine(); μ ν΅ν΄ μ λ ₯λ°μ λ΄μ©μ μ μ₯
- νμ±μ΄ νμν λ nextIntλ nextFloat μ¬μ©
- nextInt()μ κ°μ λ©μλλ κ°μ μ λ ₯λ°μμ μ¬μ©νκΈ°μ κΉλ€λ‘μ
μ§λ²
10μ§λ²κ³Ό 2μ§λ²
- μΌμμμ μμ£Ό μ¬μ©νλ κ²μ 10μ§λ² (10κ°μ μκ°λ½)
- μ»΄ν¨ν°λ 1,0 (μ κΈ°κ° νλ₯΄κ±°λ, νλ₯΄μ§ μκ±°λ) -> 2μ§λ²μ΄ μ ν©
- 2μ§λ²μ 10μ§λ²μ λΉν΄ λ§μ μλ¦Ώμκ° νμ
- μλ¦Ώμλ§ μ£Όμ΄μ§λ©΄ 10μ§μ μ¨μ ν νν κ°λ₯
λΉνΈμ λ°μ΄νΈ
- ν μλ¦Ώμμ 2μ§μκ°
λΉνΈ(bit)
- 8λΉνΈλ₯Ό
1λ°μ΄νΈ(byte)
niddle
μ 4λΉνΈ
μλ(word)
λ CPUκ° ν λ²μ μ²λ¦¬ν μ μλ λ°μ΄ν°μ ν¬κΈ°- μ±λ₯μ λ°λΌ 32λΉνΈ or 64λΉνΈ
- n λΉνΈλ‘ ννν μ μλ 10μ§μ
- κ°μ κ°μ : 2^n
- κ°μ λ²μ : 0 ~ 2^n-1
8μ§λ²κ³Ό 16μ§λ²
- 8μ§μλ 2μ§μ 3μ리
- 2μ§μλ₯Ό λ€μμλΆν° 3μλ¦¬μ© λμ΄μ κ΅ν
- 16μ§μλ 2μ§μ 4μ리
- 2μ§μλ₯Ό λ€μμλΆν° 4μλ¦¬μ© λμ΄μ κ΅ν
- A~Fλ₯Ό μΆκ°λ‘ μ¬μ© (AλΆν° 10)
μ μμ μ§λ² λ³ν
- 10μ§μλ₯Ό n μ§μλ‘ λ³ν
- ν΄λΉ μ§μλ‘ λλκ³ λλ¨Έμ§ κ°μ μμ μ λ κ²μ λ°λ³΅
- λ μ΄μ λλ μ μμ λκΉμ§ ν λ€μ λͺ«κ³Ό λλ¨Έμ§λ₯Ό μλλ‘λΆν° μλ‘ μμλλ‘ μ κΈ°
- n μ§μλ₯Ό 10μ§μλ‘ λ³ν
- κ° μ리μ μμ ν΄λΉνλ λ¨μμ κ°μ κ³±ν κ²μ ν©
μ€μμ μ§λ²λ³ν
- 10μ§ μμμ μλ₯Ό 2μ§ μμμ μλ‘ λ³ννλ λ°©λ²
- 10μ§ μμμ 2λ₯Ό κ³±νκΈ°
- κ·Έ κ²°κ³Όμμ μμλΆλ§ κ°μ Έλ€κ° λ€μ 2λ₯Ό κ³±νκΈ°
- μμλΆκ° 0μ΄ λ λκΉμ§ λ°λ³΅
- 0κ³Ό . λ€μ ν΄λΉ κ²°κ³Όλ₯Ό μμλλ‘ μ κΈ°
- 2μ§ μμμ μλ₯Ό 10μ§ μμμ μλ‘ λ³ννλ λ°©λ²
- μμμ μλ¦Ώμμ ν΄λΉλλ μ§λ²μ λ§μ΄λμ€ μ κ³± κ³±ν κ²μ ν©
μμμ 2μ§ νν - 2μ 보μλ²
μμ νν λ°©λ²
- μΌμͺ½μ 첫 λ²μ§Έ λΉνΈκ° 0μ΄λ©΄ μμ, 1μ΄λ©΄ μμ
- λ μλ₯Ό λνμ λ 2μ§μλ‘ 0μ΄ λμ§ μλ λ¨μ
- 0μ΄ λ κ°(0, -0) μ‘΄μ¬νλ λ¨μ
- 2μ§μκ° μ¦κ°ν λ 10μ§ μμλ κ°μ
- 2μ 보μλ²μΌλ‘ νν
- μ λκ°μ΄ κ°μ μμμ μμλ₯Ό λνλ©΄ 2μ§μλ‘λ 0μ μ»μ
- 2μ§μκ° μ¦κ°ν λ 10μ§ μμλ κ°μ
- 첫 λ²μ§Έ λΉνΈλ₯Ό λ°κΎΈλ κ²λ§μΌλ‘ κ°μ λΆνΈλ₯Ό λ°κΏ μ μμ
2μ 보μλ²
- nμ 보μ : λνμ λ nμ΄ λλ μ
- 2μ 보μ : λν΄μ 2κ° λλ λ μμ κ΄κ³
- 2λ 2μ§μλ‘ '10' -> '10'μ
μ리 μ¬λ¦Όμ΄ λ°μνκ³ 0μ΄ λλ μ
- κ·Έλ¬λ―λ‘ 2μ μ§μλ λνλ©΄ μ리 μ¬λ¦Όμ΄ λ°μνκ³ 0μ΄ λ¨
- μμλ₯Ό 2μ§μλ‘ νννκΈ°
- 10μ§ μμ μ μμ μ λκ°μ 2μ§μλ‘ λ³ν
- 1μ 보μλ‘ λ³ν ν λνκΈ° 1
κΈ°λ³Έν
λ Όλ¦¬ν - boolean
- true or false
- λλ΅, μ€μμΉ λ±μ λ Όλ¦¬ ꡬνμ μ¬μ©
- 1byte (μλ°μ μ΅μ λ¨μλ 1byteμμΌλ‘)
- λμλ¬Έμ κ΅¬λ³ μ£Όμ
λ¬Έμν - char
- λ¨ νλμ λ¬Έμλ§μ μ μ₯
- λ¬Έμμ μ λμ½λμΈ μ μκ° μ μ₯λλ κ²
- 리ν°λ΄ λμ λ¬Έμμ μ λμ½λλ₯Ό μ μ₯ κ°λ₯
- intνμ charν λ³μλ₯Ό λμ
μ μ μνμΌλ‘ μΊμ€ν
ν κ²
- ν΄λΉ λ³μμ λ€μ΄μλ λ¬Έμμ μ λμ½λλ₯Ό μ μ μμ
- νΉμλ¬Έμ
- \t(tab)
- \b(λ°±μ€νμ΄μ€)
- \f(form feed)
- \n(new line)
- \r(μΊλ¦¬μ§ 리ν΄)
- \(μμ¬λμ¬)
- `(μμλ°μ΄ν)
- "(ν°λ°μ΄ν)
- \uμ λμ½λ(16μ§μμΈ μ λμ½λ λ¬Έμ)
- ν¬κΈ°λ 2byte
- 2^16μ μ½λ μ¬μ© κ°λ₯
- μμλ₯Ό νννμ§ μμΌλ―λ‘ νν κ°λ₯ν μ μμ κ°μλ 0 ~ 2^16 - 1
- μΈμ½λ©μ λ¬Έμλ₯Ό μ λμ½λλ‘, λμ½λ©μ κ·Έ λ°λ
- μμ€ν€λ 7bit λΆνΈ
- 128κ° λ¬Έμμ μ§ν© (κΈ°νΈ, μ«μ, μμ΄μ λμλ¬Έμ)
- νμ₯ μμ€ν€
- μμ€ν€μ λ¨μ 1bitλ₯Ό νμ©
- κ΅κ°λ κΈ°μ μμ νμμ λ°λΌ λ€λ₯΄κ² μ μ
- νκΈμ μ‘°ν©ν(μ΄,μ€,μ’ μ±μ μ‘°ν©), μμ±ν(μμ€ν€μ μΌλΆ μμμ λ λ¬Έμ μ½λλ₯Ό κ²°ν©)
- νμ¬ νκΈμ μ‘°ν©ν μ¬μ© x
- μ½λ νμ΄μ§
- νμ₯ μμ€ν€μ 256κ° λ¬Έμλ₯Ό μ΄λ€ μ«μλ‘ λ³νν κ²μΈμ§ μ μ΄λμ λ¬Έμ μ½λν
- μ λμ½λ
- μ μΈκ³μ λͺ¨λ λ¬Έμλ₯Ό νλμ ν΅μΌλ λ¬Έμ μ§ν©μΌλ‘ νν
- 2 byte + 21 bit(보좩 λ¬Έμ)
- 보좩 λ¬Έμλ charνμ΄ μλ intνμΌλ‘ (κ±°μ μ¬μ©λμ§ μμ)
- μλ°λ UTF - 16μ μ¬μ© (λͺ¨λ λ¬Έμλ₯Ό 2byteμ κ³ μ ν¬κΈ°λ‘ νν λ° μ²μ 128λ¬Έμλ μμ€ν€μ λμΌ)
- UTFλ μ λμ½λ λ¬Έμ μ (ν¬ν¨μν€κ³ μ νλ λ¬Έμλ€μ μ§ν©)
- 16μ λ¬Έμ μ μ λ²νΈ
- UTF - 8μ νλμ λ¬Έμλ₯Ό 1~4 byteμ κ°λ³ν¬κΈ°λ‘ νν
- UTF - 16μ λ¬Έμλ₯Ό λ€λ£¨κΈ°κ° νΈλ¦¬(ν¬κΈ°κ° κ³ μ )
- UTF - 8μ μ«μλ 1 λ°μ΄νΈ, νκΈμ 3λ°μ΄νΈλ‘ νν -> κ°λ³μ μ΄λ―λ‘ λ€λ£¨κΈ° μ΄λ ΅μ§λ§ μ μ‘μλκ° μ€μν κ³³μμ μ¬μ©μ΄ λκ³ μλ€.
μ μν
byte(1byte) < short(2byte) < int(4byte) < long(8byte)
μ μνμ νν λ°©μ
- μΌμͺ½μ 첫 λ²μ§Έ λΉνΈλ λΆνΈ λΉνΈ
- λλ¨Έμ§λ κ°μ νννλ λ° μ¬μ©
- n λΉνΈλ‘ ννν μ μλ μ μμ κ°μ -> 2^n κ°
- λΆνΈκ° μλ μ μμ λ²μλ -2^(n-1) ~ 2^(n-1) -1
μ μμ μ ν κΈ°μ€
- JVMμ νΌμ°μ°μ μ€νμ 4byte λ¨μλ‘ μ μ₯
- byte, shortλ λ³ννμ¬ μ°μ°μ΄ μνλμ΄ μ€νλ € λλ¦Ό
- κ·Έλ¬λ―λ‘ byte, shortλ μ±λ₯λ³΄λ€ μ μ₯ 곡κ°μ΄ μ€μν λ μ¬μ©ν κ²
- μ μ μ μΈ μ int νμ
μΌλ‘ μ μΈ ν intμ λ²μ
(λλ΅ -20μ΅~+20μ΅)
λ₯Ό λμ΄κ°λ©΄ longμ μ¬μ©ν κ²
μ μμ μ€λ²νλ‘μ°
- νμ μ΄ ννν μ μλ κ°μ λ²μλ₯Ό λμ΄μλ κ²
- μ΅λκ° + 1 -> μ΅μκ°
- μ΅μκ° -1 -> μ΅λκ°
λΆνΈ μλ μ μμ μ€λ²νλ‘μ°
- λΆνΈ μλ μ μλ λΆνΈ λΉνΈκ° 0μμ 1μ΄ λ λ μ€λ²νλ‘μ°κ° λ°μ
μ€μν - float, double
μ€μνμ λ²μμ μ λ°λ
- float -> μ λ°λ 7μ리, ν¬κΈ°λ 4byte
- double -> μ λ°λ 15μ리, ν¬κΈ°λ 8byte
- μΌλ§λ ν° κ°μ ννν μ μλκ°λ μ€μνμ§λ§ μΌλ§λ 0μ κ°κΉμ΄ κ°μ ννν μ μλμ§λ μ€μ
- μ€μνμ μ€λ²νλ‘μ°κ° λ°μνλ©΄ κ°μ΄ 무νλκ° λλ€.
- μ€μκ° ννν μ μλ μμ£Ό μμ κ°μ΄ λλ κ²½μ°λ μΈλνλ‘μ°
- float νμ
μ νν λ°©μ
- S(1)[λΆνΈ] + E(8)[μ§μ] + M(23)[κ°μ]
- 7μ리 μ΄μμ μ λ°λκ° νμν μ doubleν
- '%f'λ κΈ°λ³Έμ μΌλ‘ μμ 7λ²μ§Έ μ리μμ λ°μ¬λ¦Ό
μ€μνμ μ μ₯ νμ
- (λΆνΈ[S])κ°μ[M] * 2^μ§μ[E]
- float : 1 + 8 + 23
- dobule : 1 + 11 + 52
- λΆνΈλ 0μ΄λ©΄ μμ, 1μ΄λ©΄ μμ
- μ§μλ λΆνΈ μλ μ μ
- -127, +128μ 무νλλ₯Ό μν νΉλ³ν κ°μ νν μμ½
- κ°μλ μ€μ κ°μ μ μ₯νλ λΆλΆ
- 2^23μ΄ λλ΅ 7μ리μ 10μ§μμ΄λ―λ‘ floatμ μ λ°λκ° 7μ리!
λΆλμμμ μ μ€μ°¨
- 2μ§μλ‘λ 10μ§μλ₯Ό μ νν ννν μ μκΈ°μ μ€μ°¨
- μ§μλ κΈ°μ λ²μΌλ‘ μ μ₯ (ex. 127μ λν΄μ€)
- κΈ°μ λ²μ λΆνΈ μλ μ μλ₯Ό μ μ₯νλ λ°©λ²μ λ»ν¨
- μ κ·ν : 2μ§μλ‘ λ³νλ μ€μλ₯Ό 1.xxx * 2^nμ ννλ‘ λ³ννλ κ³Όμ
νλ³ν
λ³μ λλ μμμ νμ μ λ€λ₯Έ νμ μΌλ‘ λ³ννλ κ²
- booleanμ μ μΈν λλ¨Έμ§ 7κ°μ κΈ°λ³Ένμ μλ‘ νλ³νμ΄ κ°λ₯
- κΈ°λ³Ένκ³Ό μ°Έμ‘°νλΌλ¦¬λ νλ³ν X
λ°©λ² => (νμ )νΌμ°μ°μ
- κ΄νΈλ μΊμ€νΈ μ°μ°μ(νλ³ν μ°μ°μ) -> μ§μ λ νμ μΌλ‘ νλ³ν λ€ λ°ν
μ μνκ°μ νλ³ν
- ν° νμ μμ μμ νμ μΌλ‘μ λ³νμ κ°μμ€μ΄ μΌμ΄λ μ μμ
- μμ νμ
μμ ν° νμ
μΌλ‘μ λ³νμ κ° μμ€ X, λΉ κ³΅κ°μ΄ 1μ΄λ 0μΌλ‘ μ±μμ§
- μμμΈ κ²½μ° 1λ‘ μ±μμ§
μ€μν κ°μ νλ³ν
- float -> double
- μ§μλ floatμ κΈ°μ μΈ 127μ λΊ ν doubleμ κΈ°μ μΈ 1023μ λν¨
- κ°μλ floatμ κ°μ 23μ리λ₯Ό μ±μ°κ³ λ¨μ μ리λ₯Ό 0μΌλ‘ μ±μ
- double -> float
- μ§μλ doubleμ κΈ°μ μΈ 1023μ λΊ ν floatμ κΈ°μ μΈ 127μ λν¨
- κ°μλ doubleμ κ°μ 52μ리 μ€ 23μλ¦¬λ§ μ μ₯λκ³ λλ¨Έμ§λ λ²λ €μ§
- κ°μμ 24λ²μ§Έ μ리μμ λ°μ¬λ¦Όμ΄ λ°μν μλ μμ
- float νμ μ λ²μλ₯Ό λλ κ°μ floatλ‘ λ³ννλ κ²½μ° +- 무νλ or +-0μ΄ κ²°κ³Ό
μ μνκ³Ό μ€μν κ°μ νλ³ν
- μ μν -> μ€μν
- μ μλ₯Ό 2μ§μλ‘ λ³ν ν μ κ·ν
- μ€μνμ΄ μ μνλ³΄λ€ ν¨μ¬ ν° μ μ₯ λ²μ
- μ€μνμ μ λ°λλ‘ μΈν μ€μ°¨ λ°μ κ°λ₯(floatλ 7μ리μ μ λ°λ, doubleμ 15μ리)
- μ€μν -> μ μν
- μ€μνμ μμμ μ΄ν κ°μ λ²λ €μ§
- λ°μ¬λ¦Όμ λ°μ X
- μμμ μ λ²λ¦¬κ³ λ¨μ μ μκ° μ μνμ λ²μλ₯Ό λλ κ²½μ°μ μ€λ²νλ‘μ°
μλ νλ³ν
- λμ μ΄λ μ°μ° μ μ»΄νμΌλ¬κ° μλ΅λ νλ³νμ μλμΌλ‘ μΆκ°(ν λΉνλ νμ μ΄ ν΄ κ²½μ°)
- λ³μκ° μ μ₯ν μ μλ κ°μ λ²μλ³΄λ€ λ ν° κ°μ μ μ₯ν λ νλ³ν μλ΅ μ μλ¬
- μλ‘ λ€λ₯Έ λ νμ
κ°μ λ§μ
μμ νν λ²μκ° λ λμ νμ
μΌλ‘ νλ³ν
- κ° μμ€μ μνμ μ€μ΄κΈ° μν΄
κΈ°μ‘΄μ κ°μ μ΅λν 보쑴ν μ μλ νμ μΌλ‘ μλ νλ³νμ΄ κ·μΉ
- byte -> (short or char) -> int -> long -> float -> double
'Java > Javaμ μ μ' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
Chapter 06 - κ°μ²΄μ§ν₯ νλ‘κ·Έλλ° 1 (0) | 2022.04.20 |
---|---|
Chapter 05 - λ°°μ΄ (0) | 2022.04.19 |
Chapter 04 - 쑰건문과 λ°λ³΅λ¬Έ (0) | 2022.04.15 |
Chapter 03 - μ°μ°μ (0) | 2022.04.10 |
Chapter 01 - μλ°λ₯Ό μμνκΈ° μ μ (0) | 2022.03.05 |