티스토리 뷰

/*

** 안녕하세요, doriri입니다.

** 오늘은 자료형 표현과 형 변환에 대해서 적어두겠습니다.

*/


1. 자료형


CPU는 기본적으로 int를 가장 고속으로 계산한다.

자바에서는 모든 정수형 연산 시 int형으로 형변화 후 계산한다.

따라서 short를 쓰더라도 short -> int로 형변환 후 계산하여 속도가 느리게된다.



short, byte 자료형은 연산에서는 필요성이 없지만

연산보다 데이터가 중시되는 프로그램에서는 작은 단위로 데이터를 표현하게된다. ( 3D 그래픽정보, 노래 )



double형 하나만 보면 소수점 이하 15자리 까지 오차가 발생하지는 않지만,

오차가 발생할 수 있는 두 double을 연산하면 소수점 이하 3자리에서도 오차가 발생할 수 있다.

따라서 실수를 연산시 기본적으로 오차가 존재한다고 인식해야한다.



더 큰 자료형에서 작은 자료형으로는 형 변환할 수 없습니다. ( long -> int )



실수의 e표기법, 16진수 8진수

double E1 = 1.5e-3 ;    -> 0.0015  -> 

double E2 = 1.1e+3 ;    -> 1500.0  -> 

int num1 = 0xA0E;      -> 2574    -> ( 16진수 -> 10진수 )

int num2 = 0752;        -> 490    -> ( 8진수 -> 10진수 )




char a = 0x3784 -> 0x3784에 해당하는 unicode 저장 ( 해당 국가 폰트 필요 )



boolean b = true ;      -> 참

boolean b2 = false ;    -> 거짓




2. 형변환


System.out.println(1.4+9.1);

상수도 메모리 공간에 저장된다. 단, 주소에 접근하기 위한 이름이 없기때문에 값 변경을 할 수 없다.

자바에서는 기본적으로 모든 정수형 상수는 int형, 모든 실수형 상수는 double형으로 표현 및 저장한다.

상수는 리터럴(literal)이라고도 한다.



상수를 기본적으로 int, double형으로 인식하기때문에 long, float 사용시 주의해야한다.


long L1 = 10000000000;  -> error -> 상수가 int형 범위를 벗어낫기때문에 사용할 수 없다.

long L2 = 10000000000L; -> 상수를 long 형으로 표현해달라 -> 정상 동작


float F1 = 125 ;          -> error -> 자바 컴파일러는 상수의 크기보다 byte단위를 기준으로 판단하여 double -X-> float

float F2 = 125F ;          -> 상수를 float 형으로 표현해달라 -> 정상 동작


short, byte 형은 범위가 작아 표현이 필요 없다.




3. 자동 형변환 규칙


byte -> short -> int -> long -> float -> double

char  ┘


ex) double num1 = 20 ; -> int형 20이 double 형 20.0으로 변환 후 num에 저장

double num2 = 1.25F + 12; -> CPU가 연산할 수 있도록 두 자료형을 맞춰줘야함 -> float형은 int형으로 변환 불가

->1.25F + 12.0F -> 13.25F 가 double형으로 변환 후 저장



4. 명시적 형 변환

int num1 = (int)12.5; -> 소수점 이하가 잘려나가면서 int형으로 저장


long num2 = 2147483648L;

int num3 = (int)num1; -> 상위 4byte를 제외한 나머지를 저장



/*

** ... 확실히 전보다 대충되고 많이 줄었네요

** 대신 중요한 내용만 간략하게 담게되니까 시간 부족하신 분들은 휙휙 보시면 좋을거라고 생각합니다.

** 나중에 시간날 시 수정해서 보기편하게 올려드리겠습니다.

** 읽어주셔서 감사합니다.

*/


댓글
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함