작성
·
231
5
지수도 음수를 가질 수 있도록 변환 할 필요가 있기 때문에 exponent부분에 음의 지수를 저장하는 2가지 방법에 대한 것은 이해했습니다만 지수부분을 signed로 저장하든 unsigned로 저장하든 왜 일부러 음수로 변환하는가가 궁금합니다. 그럴수 밖에 없는 이유가 있나요?
01111100이 10진수로 124인데 2^124가 아니라 굳이 127을 빼서 2^124-127의 음의 지수를 만드는지 알고 싶습니다.
답변 3
0
강의에 설명된 부분이라 제가 조금 넘겨짚었군요. 강의의 반복이지만,
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
signed와 unsigned중 unsigned로 저장하는 방법이 더 빠르다는 말이시죠? unsigned로 하는 것을 biased notation이라고 하나 보군요. signed로 저장하는 방법도 따로 부르는 이름이 있는지 궁금하네요.
그런데 제가 궁금한 건 둘 중 어느 것이 더 빠르게 비교하는가가 아닌 그저 지수부분을 음수로 처리하는 이유가 궁금했던 것인데 혹시 제가 잘못 이해하고 있는 건가요?
0
지수를 unsigned로 하는 편이 더 빠르게 비교를 할 수 있기 때문에 강의에서 나왔던 방식(biased notation)을 사용합니다. signed 를 사용하면 -127은 넣지 않습니다.