정수를 표현하는 방식
일반적으로 사람들은 10진수를 사용해서 숫자를 표현한다. 물론 다른 방식으로도 숫자를 표현하는 것이 가능하다.
- 16진수(Hexadecimal Number) : 0x7B
- 10진수(Decimal Number) : 123
- 8진수(Octal Number) : 173
- 2진수(Binary Number) : 1111011
모두가 123을 표현하고 있다.
수의 체계
자연수(Natural Number) == 양수, 양의 정수(Posivie Integer) 자연수란 1, 2, 3과 같이 1부터 시작하여 1씩 커지는 수를 이야기한다. 음수, 음의 정수((Negative Integer)) 음수란 자연수와 0 보다 작은 숫자를 의미
jettstream.tistory.com
실수(real number)를 표현하는 방식
2.75는 0.5 + 0.25 이므로 0010.1100로 표현이 가능하다.
고정소수점(Fixed Point)
실수는 보통 정수부(integer)와 소수부(decimal)로 나눌 수 있다.
따라서 실수를 표현하는 가장 간단한 방식은 소수부의 자릿수를 미리 정하고, 고정된 자릿수의 소수를 표현하는 것이다.
이를 고정소수점 방식이라고 부른다.
32비트 실수를 고정 소수점 방식으로 표현하면 다음과 같다.
하지만 이 방식은 정수부와 소수부의 자릿수가 크지 않으므로, 표현할 수 있는 범위가 매우 적다는 단점이 있다.
고정소수점 방식은 직관적이지만 아주 큰 수나 아주 작은 수를 표현하는데 적합하지 않다.
부동소수점(Floating Point)
부동소수점에서 부동은 움직이지 않는다는 뜻의 부동(不動)이 아니라, 오히려 그 반대의 의미로 소수점이 떠다니며 움직인다는 의미의 부동(浮動)이다. IEEE 754 표준 방식으로 숫자를 부동소수점으로 표현하는 방식을 알아보자.
- 부호부(Sign) : 숫자의 부호를 나타내며, 양수일 때 0, 음수일 때 1이 된다.
- 지수부(Exponent) : 지수를 나타낸다.
- 가수부(Mantissa) : 가수 또는 유효숫자를 나타낸다.
부동소수점으로 표현하는 방법
- 2진수를 정규화(normalize) 한다.
- 처음 1비트에 0은 양수, 1은 음수로 표시한다.
- 지수부에 정규화 과정에서 얻어낸 지수에 bias를 더한 값을 이진수로 변환해서 채운다.
- 가수부에 소수 부분의 값으로 채웁니다. 남는 자리는 0으로 채운다.
1e+6 이게 뭔데? 과학적 표기법이란 무엇인가?
1e+6은 무엇을 의미하는가? 간단하다. 이는 1,000,000을 의미한다. 0이 6개인걸 뜻한다. 아래에서 더 자세히 알아보자. Metric Prefixes Online Unit Converter 1E+24 1,000,000,000,000,000,000,000,000 yotta Y online.unitconverte
jettstream.tistory.com
부동소수점 표현방식은 과학적 표기법을 기반으로 하고 있다. 위의 포스팅을 참고하자.
정규화(normalize)
정규화란 2진수를 1.xxx * 2n 형태로 나타내는 것이다. 10진수 7.625를 정규화하면 2진수로 변환하면 111.101이다. 그리고 정규화하면
1.11101 * 22
값 2를 얻습니다. 2에 bias인 127을 더해준다.
즉, 129(2 + 127) 이진수로 표현하면 10000001(128 + 1)을 지수부에 넣어준다.
가수부 입력
x.11101에 해당하는 11101을 입력하고 남는 자리를 0으로 채워준다.
함께 읽으면 좋은 글
C# 단정밀도(Single Precision), 배정밀도(Double Precision)에 대해서
부동소수점(Floating point) 부동소수점의 표현 방법에 대해서는 IEEE754에서 32bit single-precision과 64bit double-precision 표준을 정하고 있는데 이것이 바로 float와 double의 규격이다. 기본적인 구조는 최상위
jettstream.tistory.com
참고 사이트
CS50 - 고정 소수점(fixed point)과 부동 소수점(floating point)
최근 사내에서 CS50 스터디를 시작했습니다. 본 포스팅은 CS50의 두번째 주제인 ‘C언어’ 강의를 듣다가 평소 궁금했던 고정 소수점(fixed point)과 부동 소수점(floating point)에 대해 추가적으로 정리
gguguk.github.io
숫자를 부동소수점 방식으로 표현하기 - Codetorial
부호, 지수, 가수 IEEE 754 부동소수점 표현에서 숫자는 아래와 같이 부호부, 지수부, 가수부의 세 부분으로 구성됩니다. 각 부분의 역할과 사용하는 비트 수는 아래와 같습니다. 부호부 (Sign) : 1비
codetorial.net
'하드웨어 > 컴퓨터 구조' 카테고리의 다른 글
CPU의 구조와 작동방식 (8) | 2023.07.28 |
---|---|
프로그램 카운터(Program Counter) (3) | 2023.07.21 |
릴레이를 이용한 논리연산 (6) | 2023.07.11 |
전기로 덧셈을 표현하는 반가산기, 전가산기 (6) | 2023.07.07 |
폰노이만 구조 (20) | 2023.06.27 |
댓글