C# - int와 float의 범위가 다른 이

김도현·2023년 10월 26일
0

TIL

목록 보기
54/76

이 글을 작성 이유

이는 면접에서 자주 물어보는 질문이며 a답변이 아닌 b 답변이 나오는 경우가 많기에 작성하게 되었습니다.

a 답변

int는 정수형 값 타입 변수이고 float는 실수형 값 타입 변수이기에 정수만을 표현하고자 하면 int, 실수도 표현 하고자 하면 float를 사용하면 됩니다.

  • 이는 사용자가 코드에서 사용하는 단위에 맞춰서 사용한다는 의미를 나타내는 말입니다.

b 답변

int와 float는 똑같이 4Byte(32Bit) 이지만 값을 저장하는 방법이 다르기 때문에 값의 범위가 다릅니다.
int는 앞자리 1bit를 제외한 모든 수(31Bit)가 수를 표현합니다. - -2,147,483,648 ~ 2,147,483,647

float는 부동 소수점 표현방식을 사용해서 앞자리 1Bit는 부호부, 1Byte(8Bit)는 지수부, 23Bit는 가수부 입니다. 가수부는 1.0 ~ 2.0의 수를 표현하며 지수부는 단위를 표시 합니다.
그래서 최대값 2 * 2^127을 표현 할 수 있습니다.

  • 가수부의 최대값 2, 단위를 표시하는 지수부 최대값 127

  • 이는 설계적으로 정밀도와 범위의 차이가 나타나는 이유를 설명한 것입니다.

0개의 댓글