인프런 커뮤니티 질문&답변

solitary님의 프로필 이미지

작성한 질문수

홍정모의 따라하며 배우는 C언어

3.11 부동소수점형

11:00 부분쯤에서 exponent부분

20.07.12 16:17 작성

·

225

5

지수도 음수를 가질 수 있도록 변환 할 필요가 있기 때문에 exponent부분에 음의 지수를 저장하는 2가지 방법에 대한 것은 이해했습니다만 지수부분을 signed로 저장하든 unsigned로 저장하든 왜 일부러 음수로 변환하는가가 궁금합니다. 그럴수 밖에 없는 이유가 있나요?

01111100이 10진수로 124인데 2^124가 아니라 굳이 127을 빼서 2^124-127의 음의 지수를 만드는지 알고 싶습니다.

답변 3

0

Hello Yeo님의 프로필 이미지

2020. 07. 13. 04:52

강의에 설명된 부분이라 제가 조금 넘겨짚었군요. 강의의 반복이지만,

8비트라면 unsigned의 경우 0~255까지 표현 가능합니다. (255의 경우 다른 용도로 사용, infinity, NaN(Not a Number))

때문에 값은 unsigned로 저장하되, 표현할때는 -127을 해주어서 unsigned integer 형식으로 값을 저장함에도 불구하고 음수도 표현할 수 있도록 한 것 입니다.

Unsigned로 표현하는 방식이 biased notation인 것은 아니고, -127과 같은 어떤 값(biase)으로 조정하여 실제 값을 표현하는 것을 biased notation이라 합니다.

Signed의 경우 방식에 따라 다르겠지만 보편적으로 사용하고 있는 방식의 경우 two's complement (representation) 이라 합니다.

0

solitary님의 프로필 이미지
solitary
질문자

2020. 07. 12. 23:48

signed와 unsigned중 unsigned로 저장하는 방법이 더 빠르다는 말이시죠? unsigned로 하는 것을 biased notation이라고 하나 보군요. signed로 저장하는 방법도 따로 부르는 이름이 있는지 궁금하네요.

그런데 제가 궁금한 건 둘 중 어느 것이 더  빠르게 비교하는가가 아닌 그저 지수부분을 음수로 처리하는 이유가 궁금했던 것인데 혹시 제가 잘못 이해하고 있는 건가요?

0

Hello Yeo님의 프로필 이미지

2020. 07. 12. 19:03

지수를 unsigned로 하는 편이 더 빠르게 비교를 할 수 있기 때문에 강의에서 나왔던 방식(biased notation)을 사용합니다.  signed 를 사용하면 -127은 넣지 않습니다.

solitary님의 프로필 이미지

작성한 질문수

질문하기