목록Today I Learned/The Secret Life of Programs (3)
한결과 레지아이스

오늘은 부동소수점에 대해 공부했습니다. 왜 부동 소수점(floating point)라고 부를까? 그와 반대되는 고정 소수점(fixed point)을 보면 이해할 수 있습니다. 4개의 비트를 사용해 (2진)소수를 표현한다 가정하고 예시를 들어보겠습니다. 2개의 비트는 소수점 왼쪽의 정수부를, 2개의 비트는 소수점 오른쪽의 분수부를 표현하는데 사용할 수 있습니다. 이런식으로 표현하게 되면 소수점의 위치가 항상 동일합니다. 비트가 4개 뿐이라 표현범위가 좁아 보이지만, 비트 수가 충분하다면 소수를 표현하기 좋은 표현법이라고 합니다. 실제로 고정 소수법을 사용하는 컴퓨터가 있기도 하고요. 하지만 쓸모 있는 범위의 소수를 표현하기 위해 너무 많은 비트 수를 필요로 하기에, 일반적인 컴퓨터는 조금 더 효율적인 부동..
오늘은 많이 볼 시간이 없어서 짧게 2의 보수 표현법에 대해서만 공부했습니다. 2의 보수 표현법은 비트로 음수를 표현하는 방법 중 하나입니다. 다른 표현법으로는 부호와 크기 표현법, 1의 보수 표현법이 있습니다. 그런데 부호와 크기 표현법은 덧셈 등 연산에 문제가 있고, 또 0과 -0으로 0의 표현법이 두 개 존재한다는 것도 문제입니다. 1의 보수 표현법도 0을 두 가지 방식으로 표현하고, MSB쪽에서 올림이 생기는 경우에 복잡해져서 문제가 있습니다. 그래서 현대 컴퓨터에선 이 두 표현법을 사용하지 않는다 합니다. 그 대신 사용하는게 2의 보수 표현법입니다. 평소에 코딩을 할 때, INT_MAX 값에 1을 더해 오버플로우를 일으키면 INT_MIN 값이 나오게 됩니다. INT_MAX를 비트로 표현하면 0 ..