κΈ°μ΄λΆν° λ€μ§κΈ°
μ€λμ μμ΅ 2μΌμ°¨. μ± μ μ°¬μ°¬ν μ½μ΄λ³΄λ©° λλμ΄ κΈ°λ³Έ μλ£νκ³Ό μ°Έμ‘° μλ£νμ λν΄ κ³΅λΆνκ² λλ€. νΌκ³΅μλ‘ κ³΅λΆν λλ μ²μμ΄λκΉ λμΆ© νκ³ κ°μΌμ§! λΌλ μκ°μΌλ‘, λ°±μ μ₯λ μ€ν°λμμλ λλ λ¨λ€μ²λΌ κ³ κΈμ§κ³ λ©μ§κ² μ 리ν΄λ΄μΌμ§ νλ μκ°μΌλ‘ μνλ€. κ²°κ΅μ λ΄κ² λμμ€λ κ²μ νλλ μμλ€. byte λ μ μ΅λκ°μ΄ 255κ° μλλΌ 127μΈμ§ μ΄μ μμΌ μκ²λ μ μ΄λ€. λ¦κ²λΌλ μκ²λμμΌλ λ€νμ΄μ§λ§ μμ§ μκΈ° μν΄ μ΄ν΄ν λ΄μ©μ μ€μ€λ‘ μ 리ν΄λ³΄λ €κ³ νλ€.
κΈ°λ³Έ μλ£ν
κΈ°λ³Έ μλ£νμλ μ΄ 8 κ°μ§μ μλ£νμ΄ μ‘΄μ¬νλ€.
- λ
Όλ¦¬ν
- boolean
- μ μν
- byte
- char
- short
- int
- long
- μμν
- float
- double
κ° νμ μ λ²μλ₯Ό κ°μ§κ² λλλ°, λ Όλ¦¬νμΈ boolean νμ μ μ°Έ νΉμ κ±°μ§ μ€ νλλ§ μλ―ΈνκΈ° λλ¬Έμ 1bitμ ν¬κΈ°λ₯Ό κ°μ§λ©° λλ¨Έμ§ μλ£νμ κ° ν¬κΈ°μ λ§λ byte λ§νΌμ ν¬κΈ°λ₯Ό κ°μ§λ€.
κ·Όλ° λλ μμ§λ bitκ° λμ§ byteκ° λμ§ μ νν μ리μ‘μ§ λͺ»ν κ² κ°λ€. κ·Έλμ ν λ² μ 리νκ³ λμ΄κ°λ³΄λ €κ³ νλ€.
λ°μ΄ν°μ λ¨μ
μ»΄ν¨ν°λ 0κ³Ό 1 λ°μ λͺ¨λ₯Έλ€. μ¦, μ»΄ν¨ν°κ° νλ λͺ¨λ νμλ 0κ³Ό 1λ‘λ§ μ΄λ£¨μ΄μ Έ μλ€. μ΄λ¬ν μ»΄ν¨ν°μ μ κΈ° μ νΈλ₯Ό λ¨μλ‘ ννν κ²μ΄ bit μ΄λ©°, 0 νΉμ 1λ‘λ§ κ΅¬μ±λμ΄ μλ€. μ΄ λ, bitλ μλ λ‘κ·Έ μ νΈκ° μλ λμ§νΈ μ νΈμ΄λ―λ‘ 0κ³Ό 1 μ¬μ΄μ μ‘΄μ¬νλ μ΄λ€ κ°λ κ°μ§ μ μλ€.
κ·Έλ λ€λ©΄ 1bitκ° νν ν μ μλ μ’ λ₯λ λͺ κ°μΌκΉ? 1bitλ 0 νΉμ 1 μ€ νλλ§ κ°μ§ μ μμΌλ―λ‘ 2κ°μ§μ κ²½μ°μ μκ° μκΈ°λ©° μ΄λ 2 μ κ°μ κ°μ§ μ μλ€λ μλ―Έμ΄λ€. λ λμκ°μ 2bitλ λͺ κ°μ κ²½μ°μ μλ₯Ό κ°μ§ μ μμκΉ? 1bitκ° 2κ°μ κ²½μ°μ μλ₯Ό κ°μ§λλ°, μ΄λ¬ν 1bitκ° λ κ° μ‘΄μ¬νλ―λ‘ 2 X 2μ κ²½μ°μ μλ₯Ό κ°μ§λ€. μ¦, 2bitλ $2^2$μ κ°μ κ°μ§λ€. μ΄λ₯Ό λ°νμΌλ‘ 3bitλ $2^3$(8), 4bitλ $2^4$(16), 5bitλ $2^5$(32), 6bitλ $2^6$(64), 7bitλ $2^7$(128), 8bitλ $2^8$(256)μ κ°μ κ°μ§ μ μλ€λ μλ―Έμ΄λ€.
λ€μ κΈ°λ³Έ μλ£νμΌλ‘ λμμμ
κ·Έλ¬λ©΄ Javaμ μ μν μ€ κ°λ κ°μ΄ κ°μ₯ μμ λ¨μλ byte λ¨μμ΄λ©° char λ₯Ό μ μΈν λͺ¨λ μ μν, μμν μλ£νμλ λΆνΈκ° μ‘΄μ¬νλ€. κ·Όλ° μκ°ν΄λ³΄λ©΄ byteμ μ΅λκ°μ 127μ΄ μλλΌ 255μ¬μΌ λ§λ κ² μλκΉ λΌλ μλ¬Έμ κ°μ§ μ μλ€. μ΄λ₯Ό μ΄ν΄νκΈ° μν΄μλ μμ μΈκΈν λΆνΈμ bitλ₯Ό μ°κ΄μ§μ΄μΌ νλ€.
1byteλ 8κ°μ bitμ λμ΄μΈλ°, μ΄λ λΆνΈκΉμ§ λνλ΄κΈ° μν΄μλ μ΄λκ°μ λͺ μλ₯Ό ν΄μ£Όμ΄μΌ νλ€. μ΄ λ, μ λ°° κ°λ°μλ€μ μ΄λ¬ν 8κ°λ‘ λμ΄ν bit μ€ κ°μ₯ μμ μ‘΄μ¬νλ bitκ° 0μΌ λλ μμ, 1μΌ λλ μμλ₯Ό μλ―Ένλ κ²μΌλ‘ μ νμκ³ νλ€.
λλ¬Έμ, byteλ 0λΆν° 127κΉμ§ μμ κ°μ κ°μ§ μ μκ³ -1λΆν° -128κΉμ§ μμ κ°μ κ°μ§ μ μλ€. κ·Έλ λ€λ©΄ byteμ μ΅λκ°μ λμ΄κ°κ±°λ μ΅μκ°μ λͺ»λ―ΈμΉλ©΄ μ΄λ»κ² λ κΉ? μ€μ΅μΌλ‘ μμ보μ.
μ½λ
package day_001;
public class PrimitiveTypes {
public static void main(String[] args) {
PrimitiveTypes types = new PrimitiveTypes();
types.checkByte();
}
public void checkByte() {
byte a = 127;
a = (byte) (a + 1);
byte b = -128;
b = (byte) (b - 1);
System.out.println("byte μ΅λκ° : " + a);
System.out.println("byte μ΅μκ° : " + b);
}
}
μ€ν κ²°κ³Ό
λΆλͺ μ§μ λ³μ aλ byteμ μ΅λκ°μ λμκ³ , μ§μ λ³μ bλ byteμ μ΅μκ°μ λͺ»λ―ΈμΉλ€. κ·Έλ°λ° κ²°κ³Όλ‘ μΆλ ₯λ κ°μ a = -128, b = 127μ΄λ€. μ μ΄λ° κ²°κ³Όκ° λμμκΉ?
μ§μ λ³μ aμ bλ₯Ό 2μ§λ²μΌλ‘ νννλ©΄ λ€μκ³Ό κ°λ€.
μ§μ λ³μ | μ΄μ§λ² |
byte a | 0111 1111 |
byte b | 1000 0000 |
2μ§μλ‘ λ³νν μ§μ λ³μ aμ 1μ λνλ©΄ 1000 0000 μ΄ λλ©΄μ -128μ 2μ§μ κ°μ΄ λλ€. λ°λλ‘ 2μ§μλ‘ λ³νν μ§μ λ³μ bμ 1μ λΉΌλ©΄ 0111 1111 μ΄ λλ©΄μ 127μ 2μ§μ κ°μ΄ λλ€.
κ·Έλ λ€λ©΄ μ μ΄λ κ² byteλ₯Ό λ§λ€μμκΉ? μ΄λ―Έμ§ νμΌμ μ μ₯νλ€κ³ κ°μ ν΄λ³΄μ. λ§μ½ μ μ₯νκ³ μ νλ μ΄λ―Έμ§ νμΌμ΄ intλ‘ κ΅¬μ±λμ΄ μλ€λ©΄ μ«μ νλλ₯Ό νννκΈ° μν΄μ 32κ°μ 0κ³Ό 1μ νμν΄μΌ νλ 곡κ°μ΄ νμνλ€. νμ§λ§ byteλ‘ κ΅¬μ±λμ΄ μλ€λ©΄ μ«μλ₯Ό νννκΈ° μν 곡κ°μ 4λ°° μ μ½ ν μ μλ€. κ·Έλμ λ°μ΄ν°λ₯Ό μ μ₯νλ λ§μ μμμμ byte κ°μ μ‘°ν©ν΄ μ¬μ©νλ€. κ·ΈλμΌλ§ μ μ 곡κ°μ μ΅λνμ λ΄μ©μ μ μ₯ ν μ μκΈ° λλ¬Έμ΄λ€.
'Programming > Java' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
F004 - Reference Type (0) | 2021.05.08 |
---|---|
F003 - Access Modifier (0) | 2021.05.06 |
F001 - psvm (0) | 2021.05.06 |
TIL_W02 | Variable, Primitive / Reference Type, Literal, Array (0) | 2020.12.15 |
TIL_W01 | JVM, Bytecode, JDK, JRE, JIT Compiler (0) | 2020.12.14 |