μλ° νλ‘κ·Έλλ°μμ μ μ νμ μ ν΅μ¬μ μΈ μν μ ν©λλ€. μ΄λ² κΈμμλ μλ°μ λ€μ― κ°μ§ μ μ νμ μ λν΄ μμλ³΄κ³ , κ° νμ μ νΉμ§κ³Ό μ¬μ© λ°©λ²μ μμΈν μ΄ν΄λ³΄κ² μ΅λλ€. ν¨κ» μλ° μ μ νμ μ μ΄ν΄νκ³ , νλ‘κ·Έλλ°μμ νμ©νλ λ°©λ²μ λν΄ μμλ΄ μλ€.
β£ λͺ©μ°¨
1. μ μ νμ μ μ’ λ₯π
λ³μμ νμ μ΄ μ ν΄μ§λ©΄, μ μ₯ κ°λ₯ν κ°μ μ’ λ₯μ νμ© λ²μλ ν¨κ» κ²°μ λ©λλ€. μ μ νμ μ μ΄ 5κ°μ§κ° μμΌλ©°, λ©λͺ¨λ¦¬ ν λΉ ν¬κΈ°μ μ μ₯ κ°λ₯ν κ°μ λ²μλ₯Ό λ€μκ³Ό κ°μ΄ κ°μ§κ³ μμ΅λλ€.
char νμ μ ν κ°μ λ¬Έμλ₯Ό μ«μλ‘ μ μ₯νλ λ° μ¬μ©λ©λλ€. μ΄λ μ«μλ μμλ‘ λ§€νλ μ μκΈ° λλ¬Έμ κ°μ νμ© λ²μμ μμκ° μμ΅λλ€.
μΌλ°μ μΌλ‘ μ»΄νμΌλ¬λ μ μ 리ν°λ΄μ intλ‘ μ²λ¦¬νλ©°, intμ νμ© λ²μλ₯Ό μ΄κ³Όνλ 리ν°λ΄μ λ€μ 'l' λλ 'L'μ λΆμ¬ long νμ
κ°μμ μ»΄νμΌλ¬μκ² μλ €μ£Όμ΄μΌ ν©λλ€.
πμ¬κΈ°μ μ κΉ!
리ν°λ΄μ΄λ?
리ν°λ΄μ μ½λμμ μ§μ μ μΌλ‘ κ°μ λνλ΄λ κ³ μ λ νκΈ°λ²μ
λλ€.
리ν°λ΄μ νλ‘κ·Έλλ°μμ κ° μ체λ₯Ό νννλλ° μ¬μ©λλ©°, μ»΄νμΌλ¬κ° ν΄λΉ κ°μ μ΄ν΄νκ³ μ²λ¦¬ν μ μλλ‘ ν©λλ€.
κ°λ¨ν μμ λ‘ μ μ νμ μ λ²μλ₯Ό νμΈν΄λ³΄κ² μ΅λλ€. λ€μμ κ° μ μ νμ μ μ΅μκ°κ³Ό μ΅λκ°μ μΆλ ₯νλ μ½λμ λλ€:
public class IntegerRangeExample {
public static void main(String[] args) {
System.out.println("Byte νμ
μ λ²μ: " + Byte.MIN_VALUE + " ~ " + Byte.MAX_VALUE);
System.out.println("Short νμ
μ λ²μ: " + Short.MIN_VALUE + " ~ " + Short.MAX_VALUE);
System.out.println("Int νμ
μ λ²μ: " + Integer.MIN_VALUE + " ~ " + Integer.MAX_VALUE);
System.out.println("Long νμ
μ λ²μ: " + Long.MIN_VALUE + " ~ " + Long.MAX_VALUE);
}
}
μ΄ μ½λλ₯Ό μ€ννλ©΄ κ° μ μ νμ
μ μ΅μκ°κ³Ό μ΅λκ°μ΄ μΆλ ₯λ©λλ€. μ΄λ₯Ό ν΅ν΄ κ° μ μ νμ
μ΄ ννν μ μλ λ²μλ₯Ό νμΈν μ μμ΅λλ€.
2.μ μ 리ν°λ΄μ νννλ 4κ°μ§ λ°©λ²π
μ μλ₯Ό ννν λ μ¬μ©λλ μ νν λ°©λ²μ "μ§μ"λΌκ³ ν©λλ€. Javaλ κΈ°λ³Έμ μΌλ‘ 10μ§μλ₯Ό μ¬μ©, μ μ 리ν°λ΄ μμ±ν λλ 10μ§μκ° κΈ°λ³Έμ μΌλ‘ μ¬μ©λ©λλ€.
μ μ 리ν°λ΄μ μ½λμμ μ μ κ°μ λνλ΄λ λ°©λ²μ λλ€. μλ°μμλ λ€μκ³Ό κ°μ λ°©λ²μΌλ‘ μ μλ₯Ό ννν μ μμ΅λλ€
- Decimal (10μ§μ): κ°μ₯ νν λ°©λ²μΌλ‘, 0λΆν° 9κΉμ§μ μ«μλ₯Ό μ¬μ©ν©λλ€.
μλ₯Ό λ€μ΄, int number = 42;μ κ°μ΄ μ¬μ©ν©λλ€. - Binary (2μ§μ): 0κ³Ό 1λ‘λ§ νννλ λ°©λ²μ
λλ€. μ«μ μμ 0bλ 0Bλ₯Ό λΆμ¬μ ννν©λλ€.
μλ₯Ό λ€μ΄, int binaryNumber = 0b1010;μ κ°μ΄ μ¬μ©ν©λλ€. - Octal (8μ§μ): 0λΆν° 7κΉμ§μ μ«μλ₯Ό μ¬μ©νλ λ°©λ²μ
λλ€. μ«μ μμ 0μ λΆμ¬μ ννν©λλ€.
μλ₯Ό λ€μ΄, int octalNumber = 052;μ κ°μ΄ μ¬μ©ν©λλ€. - Hexadecimal (16μ§μ): 0λΆν° 9κΉμ§μ μ«μμ AλΆν° FκΉμ§μ μνλ²³μ μ¬μ©νλ λ°©λ²μ
λλ€.
μ«μ μμ 0xλ 0Xλ₯Ό λΆμ¬μ ννν©λλ€. μλ₯Ό λ€μ΄, int hexNumber = 0xFF;μ κ°μ΄ μ¬μ©ν©λλ€.
μ΄λ κ² λ€μν λ°©λ²μΌλ‘ μ μ κ°μ ννν μ μμ΅λλ€. μ΄λ₯Ό νμ©νλ©΄ λ€μν μν©μμ μ μ°νκ² μ μ κ°μ λ€λ£° μ μμ΅λλ€.
public class IntegerLiteralsExample {
public static void main(String[] args) {
// Decimal (10μ§μ)
int decimalNumber = 42;
long bigDecimalNumber = 1234567890L; // long νμ
μλ 리ν°λ΄ λ€μ 'L' λλ 'l'μ λΆμ
λλ€.
// Binary (2μ§μ)
int binaryNumber = 0b1010;
// Octal (8μ§μ)
int octalNumber = 052;
// Hexadecimal (16μ§μ)
int hexNumber = 0xFF;
// μΆλ ₯
System.out.println("Decimal: " + decimalNumber);
System.out.println("Big Decimal: " + bigDecimalNumber);
System.out.println("Binary: " + binaryNumber);
System.out.println("Octal: " + octalNumber);
System.out.println("Hexadecimal: " + hexNumber);
}
}
3.μ΄μ§λ°μ΄ν° ννπ₯
μ»΄ν¨ν°λ 10μ§μ λ°μ΄ν°λ₯Ό 2μ§μ λ°μ΄ν°λ‘ λ³ννμ¬ μ μ₯νλλ°, μ΄ λ λ³νλ λ°μ΄ν°λ₯Ό λ΄λ μ΅μ κ³΅κ° λ¨μλ₯Ό λΉνΈ(bit)λΌκ³ ν©λλ€. λ©λͺ¨λ¦¬μ μ μ νμ μ κ³ μ λ ν¬κΈ°μ λΉνΈ ν¨ν΄μΌλ‘ μ μ₯λ©λλ€.
byte, short, int, longμ λͺ¨λ λΆνΈκ° μλ μ μ νμ μΌλ‘, κ°μ₯ μ΅μμ λΉνΈλ λΆνΈλ₯Ό λνλ΄λ λ° μ¬μ©λ©λλ€. μμμΌ κ²½μ° μ΅μμ λΉνΈλ 0μΌλ‘, μμμΌ κ²½μ° 1λ‘ ννλ©λλ€. λλ¨Έμ§ λΉνΈλ κ°μ λ²μλ₯Ό κ²°μ ν©λλ€.
μλ₯Ό λ€μ΄, byte νμ
μ 8λΉνΈλ‘ ꡬμ±λμ΄ μμ΅λλ€. μ΄ μ€μμ κ°μ₯ μμ λΉνΈλ λΆνΈ λΉνΈλ‘ μ¬μ©λλ©°, λλ¨Έμ§ 7λΉνΈλ κ°μ λ²μλ₯Ό κ²°μ ν©λλ€. μ΄λ¬ν ꡬ쑰 λλ¬Έμ byte νμ
μ -128λΆν° 127κΉμ§μ μ μ κ°μ ννν μ μμ΅λλ€. λΆνΈ λΉνΈκ° 0μ΄λ©΄ μμλ₯Ό, 1μ΄λ©΄ μμλ₯Ό λνλ
λλ€. μ΄λ₯Όν
λ©΄, 8λΉνΈμμ 첫 λ²μ§Έ λΉνΈκ° 0μ΄λ©΄ ν΄λΉ κ°μ μμλ₯Ό λνλ΄κ³ , 1μ΄λ©΄ μμλ₯Ό λνλ
λλ€. λλ¨Έμ§ λΉνΈλ ν΄λΉ κ°μ λνλ΄λ©°, μ΄ λΉνΈλ€μ μ‘°ν©μ λ°λΌ λ€μν μμμ μμλ₯Ό ννν μ μμ΅λλ€.
μ΄μ§λ°μ΄ν°μμ μμμ μμλ₯Ό νννλ λ°©μμ λ€μκ³Ό κ°μ΅λλ€.
- μμ μ μ νν (Unsigned Integer Representation):
β μμ μ μλ μ΄μ§μλ‘ κ·Έλλ‘ ννλ©λλ€.
β μλ₯Ό λ€μ΄, 10μ§μ 5λ μ΄μ§μλ‘ 101λ‘ ννλ©λλ€. - μμ μ μ νν (Signed Integer Representation):
β μμ μ μλ 보μλ₯Ό μ¬μ©νμ¬ ννλ©λλ€.
1) 1μ 보μ (One's Complement): λͺ¨λ λΉνΈλ₯Ό λ°μ μν΅λλ€.
μλ₯Ό λ€μ΄, 10μ§μ -5μ 1μ 보μλ μ΄μ§μλ‘ 010μ΄ λ©λλ€.
2) 2μ 보μ (Two's Complement): 1μ 보μμ 1μ λν©λλ€.
μλ₯Ό λ€μ΄, 10μ§μ -5μ 2μ 보μλ μ΄μ§μλ‘ 011μ΄ λ©λλ€.
2μ 보μλ₯Ό μ¬μ©νλ μ΄μ λ λ§μ μ°μ°μ νΈμμ±κ³Ό μ νμ± λλ¬Έμ λλ€. μ΄μ§μλ‘ ννλ μμ μ μλ κ°μ₯ μΌμͺ½ λΉνΈκ° 1μΈ κ²μΌλ‘ μΈμλμ΄ μμμμ λνλ λλ€.
CPUλ λ°μ΄ν°μ λν λ§μ
μ°μ°μ μννκΈ° μν΄ κ°μ°νλ‘λ₯Ό μ¬μ©ν©λλ€. κ·Έλ¬λ λΊμ
μ°μ°μ μ²λ¦¬νλ λ°μλ κ°μ°νλ‘λ₯Ό μ¬μ©ν μ μμ΅λλ€. CPUλ μ£Όλ‘ κ°μ°μ νΉνλ λͺ
λ Ή μ²λ¦¬ μ₯μΉμ
λλ€. μ΄λ‘ μΈν΄ μ»΄ν¨ν°λ λΊμ
μ°μ°μ μ²λ¦¬νκΈ° μν΄ λ³΄μ κ°λ
μ μ±νν©λλ€.
보μλ κ° μ리μ μ«μμ ν©μ΄ μΌμ ν μκ° λλλ‘ λ§λλ μμ λλ€. μ»΄ν¨ν°μμλ μμλ₯Ό νννκΈ° μν΄ λ³΄μ κ°λ μ μ¬μ©ν©λλ€. μ΄μ§ λ°μ΄ν°μμ μμλ₯Ό νννλ μ£Όλ λ°©λ²μ 2μ 보μλ₯Ό μ¬μ©νλ κ²μ λλ€. 2μ 보μλ μ΄λ€ μμ 보μλ₯Ό μ·¨νλ©΄ ν΄λΉ μμ λν μμλ₯Ό λνλ λλ€. μλ₯Ό λ€μ΄, 8λΉνΈμμμ -5λ 5μ 2μ 보μλ₯Ό μ·¨ν¨μΌλ‘μ¨ μ»μ μ μμ΅λλ€.
μ΄λ¬ν λ°©μμΌλ‘ 보μλ₯Ό μ¬μ©νμ¬ μμλ₯Ό ννν¨μΌλ‘μ¨ CPUκ° λΊμ μ°μ°μ μνν μ μκ² λ©λλ€. μ΄λ μ»΄ν¨ν°κ° λ§μ μ°μ°λ§μΌλ‘ λͺ¨λ μ’ λ₯μ μ°μ μ°μ°μ μ²λ¦¬ν μ μλλ‘ ν΄μ€λλ€.
μμ μ μλ κ°μ₯ μμ λΉνΈκ° 1λ‘ μμλ₯Ό λνλ΄λ κ²½μ°λ₯Ό μ΄ν΄λ΄ μλ€. μ΄ κ²½μ°, λ¨μ λΉνΈλ₯Ό λͺ¨λ λ°μ (1μ 0, 0μ 1λ‘ λ°κΎΈκΈ°) ν ν 1μ λνμ¬ ν΄λΉ κ°μ μ»μ μ μμ΅λλ€. μ μ΄λ―Έμ§μμ 11111110μ -2μ 1μ 보μμ λλ€. 1μ 보μλ₯Ό μ·¨νλ©΄ κ° λΉνΈλ₯Ό λ°μ ν κ²°κ³ΌμΈ 0000001μ μ»μ΅λλ€. κ·Έλ° λ€μ μ΄ κ°μ 1μ λν΄μΌ ν©λλ€. 1μ λν κ°μ 0000010μ΄ λκ³ , μ΄ κ°μ 10μ§μλ‘ λ³ννλ©΄ -2κ° λ©λλ€.
4.ν΅μ¬ λ΄μ©π
'Language > Java' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[Java]μλ° λ Όλ¦¬ νμ (0) | 2024.04.23 |
---|---|
[Java]μλ° λ¬Έμ νμ : λ¬Έμμ΄ μ²λ¦¬μ ν΅μ¬κ³Ό String vs. char νμ λΉκ΅ (0) | 2024.04.22 |
[Java]μλ° μ€μ νμ (0) | 2024.04.21 |
[Java]μλ° λ³μ: λ°μ΄ν° μ μ₯κ³Ό κ΄λ¦¬λ₯Ό μν κΈ°μ΄ μ΄ν΄ (0) | 2024.04.19 |
[Java]μλ° μ£Όμ: μ½λ μ΄ν΄μ μ μ§ λ³΄μλ₯Ό μν νμ κΈ°λ₯ (0) | 2024.04.14 |