- 실수는 부동소수점 방식을 사용하여 표현. 따라서 정수보다 복잡함.
- 정수에서는 소수점이 항상 오른쪽 끝에 있다고 가정하지만, 실수에서는 소수점의 위치가 필요에 따라 움직임.
- 숫자를 과학적 표기법으로 바꿔서 표현하면 일정한 비트로 큰 수와 작은 수 모두 표현이 가능하기 때문에 수의 정밀도를 높일 수 있음.
* 부동소수점 방식: (-1)ˢ 𐄂 M 𐄂 Bᴱ와 같이 유효숫자를 사용한 형태.
S: 0보다 큰지 작은지 나타내는 부호 M: 가수 B: 기저 E: 지수
부호(1비트) 지수(m비트) 가수(n비트)
양수0 음수1 E+매직넘버(127, 128)-> 2진수로 변경 1을 제외한 소수점 부분
- 컴퓨터는 2진수를 사용하기 때문에 부동소수점 표시 방식의 기저는 2로 고정.
- 부호는 0또는 1을 사용해 1비트로 구성.
- 가수는 부호를 제외한 부분을 2진수 형태로 변환하여 저장.
- 지수는 양수 또는 음수가 될 수 있어서 부호 비트가 필요하지만 별도의 부호 비트를 사용하지 않고 부호와 함께 값을 표현할 수 있는 초과표기법을 사용해 표현.
* 초과표기법은 유일하게 부동소수점 방식의 지수 부분을 표현하기 위해서만 사용되는 정수 표현 방법.
--> 2^n-1과 2^n-1 -1을 매직넘버로 지정. n이 8비트면 (128, 127).
초과_128, 초과_127
시스템에 의해 매직넘버가 미리 정해져 있음.
* 가수를 표현할 때 표준화된 형식 필요.
- 모든 비트와 소수점의 위치에 대한 정보가 요구되기 때문에 소수점 왼쪽에 단 하나의 1만 있도록 소수점의 위치를 조정하는 정규화 과정을 거친 후 첫째 자리 1을 제외한 소수 부분만 가수에 저장하고 나머지 부분은 0으로 채움.
* IEEE의 부동소수점 방식의 표준 형식
(a) 단정도(4바이트)
부호(1비트) 지수(8비트/초과_127) 가수(23비트)
(b) 배정도(8바이트)
부호(1비트) 지수(11비트/초과_1023) 가수(52비트)
1.3.5 문자 표현
- 문자도 컴퓨터 내무에서는 2진수로 바뀌어 표현. 즉, 각 문자마다 유일한 값으로써 코드가 부여되고 2진수로 컴퓨터 내부에 표현됨.
- 각 문자에 해당하는 코드의 나열로 이루어짐. 각 문자에 대해 사용자마다 임의로 코드를 부여하면 혼란스럽기 때문에 약속된 코드 체계를 만듦.
① ASCII 코드 - 미국에서 개발한 코드로 7비트를 사용해 각 문자를 나타내기 때문에 총 128개의 서로 다른 문자를 표현 가능. 1바이트를 맞추기 위해 왼쪽에 1비트가 추가된 형태로 사용되는데 이를 확장된 ASCII라고 부름. 최상위 비트에 0을 채워 사용할 때도 있지만 데이터 전송 시 발생하는 오류 검출을 위한 패러티 비트로 사용할 수 있음.
- 패러티 비트 - 1의 숫자를 정해진 것(홀수/짝수)에 맞게 맞춰서 데이터 전송이 월활히 이루어졌는지 확인하는 비트.
② 유니코드 - 전 세계의 모든 문자를 표현하기 위한 16비트 코드 체계로 사용 중인 플랫폼, 프로그램, 언어에 무관함. 컴퓨터 하드웨어 및 소프트웨어 업체들이 모여 1990년에 첫 버전을 발표하고, 1995년 국제 표준으로 제정. 현재 국제 ISO/IEC 10646과 완전히 호환됨.
* 인코딩 방식(모두 4바이트를 사용)
- UTF-8: 1반이트에서 4바이트 형태로 가변적으로 인코딩. ASCII 코드에 해당하는 문자와 유니코드 문자는 동일한 값을 가지므로 UTF-8 형태로 인코딩된 유니코드 문자는 기존 소프트웨어에서도 수정하지 않고 사용 가능.
- UTF-16: 유니코드 문자를 16비트로 표현. 2개의 16비트로 1개의 문자를 인코딩하기 때문에 가변적임. 유니코드 표준에서 지원하는 17개의 언어판 코드만 표현 가능.
- UTF-32: 모든 유니코드 문자를 32비트로 표현하기 때문에 고정길이 인코딩이며 공간에 대한 제약이 없을 때 사용.
③ EBCDIC - 컴퓨터 초기 시대 IBM에서 개발한 8비트 코드 체계. 총 256개의 문자 코드를 표현할 수 있으나 사용되는 문자코드는 ASCII 코드와 동일한 128개. IBM 메인프레임에서만 사용.
④ BCD 코드 - 4개의 비트로 구성된 10개의 코드로 10진수를 표현하는 방식. 194의 1을 0001, 9를 1001, 4를 0100으로 표시. BCD코드의 각 자리는 8, 4, 2, 1의 자리값을 가지므로 8421 코드라고도 함.
'컴퓨터과학개론_이관용, 정광식' 카테고리의 다른 글
2.2.2 1차원 배열 (1) | 2022.09.25 |
---|---|
2. 자료구조 (0) | 2022.09.17 |
1.3.3 정수 표현 (0) | 2022.09.03 |
1.3 데이터 표현 (0) | 2022.08.27 |
1.2 컴퓨터 시스템 (0) | 2022.08.21 |