본문으로 바로가기

코딩면접 질문 - java int와 long차이

category 면접 2018.10.18 12:40

코딩면접 질문 - java int와 long차이


은근 이런거 물어본다.

개발하면서 딱히 신경을 써본적이 없는데 갑자기 물어보면 멍때릴 수 밖에 음슴.

면접에서 멍때리면 좋은 인상을 주기가 힘듬

고로 면접을 가서 붙을 확률이 떨어지고

내가 면접을 본 시간 만큼을 날릴 확률이 늘어남

내 인생에 도움이 안됨


이런 코스가 되기 때문에 이 글을 쓴다.



int는 32bit long은 64bit가 필요하다.


int는 2^5 2의 5승개 long은 2^6 2의 6승개의 공간이 필요하다.


>>> math.pow(2, 5)

32.0

>>> math.pow(2, 6)

64.0

>>> 



long이 int에 비해서 메모리를 2배 쓴다.


int는 32bit

00000000

00000000

00000000

00000000


위에서 00000000한줄이 0이 8개이다.


long은 64bit

00000000

00000000

00000000

00000000


00000000

00000000

00000000

00000000


long은 위와 같이 int에 비해서 공간이 두배로 필요하다.


공간은 각각 pow(2, 5), pow(2, 6)이렇게 쓰는데 표현할 수 있는 숫자는 각각


pow(2, 32), pow(2, 64)개이다.


>>> math.pow(2, 32)

4294967296.0

>>> math.pow(2, 64)

1.8446744073709552e+19


그래서 int는 42억 몇개이고

long은 부동소수점 표기법으로 출력 되긴 했는데 


>>> math.pow(10, 2)

100.0

>>> math.pow(10, 19)

1e+19


이걸 보면 10의 제곱이 100이니까 1e+19는 10의 19제곱이다.


1 뒤에 0이 19개 붙는다는 뜻이다. 


억이 pow(10, 8)이고 조가 pow(10, 12) 경이 pow(10, 16) 해가 pow(10, 20)이다.


그니까 pow(10, 19)는 1000경이다.


개수로는 1844경개를 표현할 수 있다.


숫자로는 -922경부터 +922경까지이다.


int는

-2147483648 ~ 2147483647



long은

-9223372036854775808 ~ 9223372036854775807


까지 표현할 수 있다.


암튼 이런걸로 면접때 물어봄

지들도 모르면서 이런걸로 쥰나 깜 ㅋㅋ

근대 0, 1이런건 다룰일이 많은데 조, 경이런건 개발자가 다룰일이 얼마나 있나 싶다.


그런데 면접때 말빨로 안밀릴라믄 이런거 알고 있으면 면접관들하고 숫자 이야기 할 때 주도권을 제법 빼앗아 올 수 있다.


end.





'면접' 카테고리의 다른 글

관심가는 회사 - 원격근무 회사  (0) 2018.11.05
알고리즘 문제 번역 - 숨겨진 숫자를 찾는 프로그램  (0) 2018.10.18
코딩면접 질문 - java int와 long차이  (0) 2018.10.18
알고스팟  (0) 2018.10.12
내 관심 회사  (0) 2018.09.06
Java로 별찍기  (0) 2018.08.24

댓글을 달아 주세요