c언어

내가 공부하기 위한 공간 - [c언어] 11 - 진수와 표현방식

AbiTindt 2022. 10. 5. 22:58
반응형

n진수 : n개의 기호를 이용해 숫자를 표현

- 2진수 : 0과 1

- 8진수 : 0~7

- 16진수 : 0~9, A, B, C, D, E, F

 

[10진수에서 2진수 변환(정수)]

76을 2진수로 1001100

* 아래부터 나열해야 올바른 값을 얻을 수 있음

* n진수로 변환하려면 2대신 n으로 나눠주면 됨

[10진수에서 2진수 변환(소수점)]

0.46875를 2진수로 0.01111

* 2를 곱해서 1의자리가 0이면 0, 1이면 1(값에서 1을 빼줌)

* n진수로 변환하려면 2대신 n으로 곱해주면 됨

* 0.45같은 실수는 2진수로 정확히 나타내기 어려움 >> 오차발생

[2진수에서 10진수로 변환]

2진수 1001.101을 10진수로 9.625

* 각 자릿수의 가중치를 곱하여 더해줌

* n진수에서 변환하려면 2대신 n으로 가중치를 계산

 

[정수 표현방식(비트)]

n개의 비트는 2^n 개의 수를 표현할 수 있음

n개의 비트로 표현할 수 있는 범위

* 부호화와 1의 보수는 0을 표현하는 비트가 2개 있음, 표현 범위는 같지만 표현 방식은 다름

표현 예시(8비트)

 

[실수 표현방식]

실수 표현을 위한 식 : 부동 소수점 방식

* 적은 바이트로 많은 범위 실수를 표현하기 위함

* 모든 실수를 정확히 표현할 수 없음 >> 부동 소수점 오차

ex) 0.45를 2진수로 정확히 표현할 수 없음

- 따라서 정확히 표현할 수 없는 실수는 문제가 없을 만큼의 근사치를 통해 표현

반응형