20240112_자료형 Int와 Float

2024. 1. 13. 01:34IT/TIL

오늘의 TIL은 기술면접 준비 과정에서 나왔던 문제인 Int와 Float에 관한 내용이다.

 

문제는 'float와 int의 표현 가능한 수의 범위가 다른 이유는 무엇인가요?'인데

 

문제를 접했을 때 나왔던 답안은

 

"int의 경우 32bit 자료형에서 1bit를 부호로 사용하고 나머지 31bit를 숫자를 표시하는데 사용하고

 

float의 경우 똑같이 32bit 자료형에서 1bit를 부호로 사용하지만, 지수를 표현하는데 사용하는 bit가 있고

 

숫자를 표시하는데 사용하는 bit가 있기 때문입니다.

 

다시 말해서, 같은 크기의 자료형이지만 숫자를 표시하는데 사용하는 bit의 크기가 다르기 때문에

 

표현 가능한 수의 범위가 달라집니다"

 

라고 나왔다.

 

 

이 문제의 해설을 살펴보면

 

문제의 출제의도는 각 자료형이 내부적으로 어떻게 구성되어있는지를 묻는 문제로

 

각 자료형마다 몇 비트를 차지하는지, 주어진 메모리를 어떻게 사용하는지(부호, 지수, 가수 등)을 확인하는 문제이다.

 

위에 답했던 답변도 어느정도 문제는 없을 것으로 생각되지만, 모범 답변으로 적혀있는 내용을 살펴보면 아래와 같다.

 

 

Float와 Int의 자료형의 차이 설명

 

Float는 소수점까지 표현할 수 있는 실수형이지만 Int는 소수점이 없는 숫자까지만 표현할 수 있는 정수형의 차이

 

Float와 Int의 크기 설명

 

Float와 Int는 둘 다 4byte (32bit)를 사용하는 같은 크기를 가진 자료형이지만

 

두 자료형에서 사용되는 bit의 구조가 다른데, Int의 경우에는 1bit를 부호로, 나머지를 지수로 표현하지만

 

Float는 1bit를 부호로, 나머지를 지수와 소수점 이하의 유효자리까지 표현하게되므로

 

두 자료형이 표현할 수 있는 숫자의 크기가 달라지게 된다.

 

Float와 Int의 특징

 

Int의 경우 31bit로 표현할 수 있는 숫자의 범위에서는 정확도가 100%이지만,

 

Float의 경우 0에서 멀어질수록 정확도가 떨어지고 값이 달라지게된다(무한소수 관련 1 != 0.999999)

 

이러한 경우에 좀 더 정확하게 표현하기 위해서는 Double을 사용하면 정확도를 높일 수 있다.

 

 

오늘은 TIL로써 기술면접 대비 연습문제를 푸는 내용을 정리했는데,

 

확실하게 알지 못했던 지식들을 내 것으로 만들 수 있는 기회가 된 것으로 생각된다.

'IT > TIL' 카테고리의 다른 글

20240116_커피 심부름(프로그래머스)  (1) 2024.01.16
20240115_기술면접 관련  (0) 2024.01.15
20240111_이미지에서 타일맵 만들기  (0) 2024.01.11
20240110_FSM, BT  (0) 2024.01.10
20240109_C#에서의 순열  (0) 2024.01.09