본문 바로가기

C언어 기초

chapter 4 : 데이터 표현방식의 이해

1) 정수 데이터의 진법 표현

 

8  진법 : 0으로 시작

10진법 : 별다른 표현법 필요x

16진법 : 0x로 시작


 

 

 

 

 

2) 정수 & 실수의 표현방식

 

>> 정수의 표현 방식

 

fact1) 정수의 가장 왼쪽의 존재하는 비트(MSB)는 '부호비트'이다

- (+,-)의 부호를 표시 : 양수면 0 / 음수면 1

- MSB를 제외한 비트들 : 정수의 크기를 나타냄

 

fact2) 음의 정수를 표현할 때에는 2의 보수를 취해야 한다.

- 2의 보수 : 반전시킨 후, 1을 더해줌

- 올림수가 버려져서 0으로 ㅏ가득차게 됨

 


>> 실수의 표현 방식

 

fact1) 실수 표현의 정밀성은 떨어진다

- 넓은 범위의 실수를 표현가능하나, 실수 표현에는 오차가 존재함 => 가까운 근사치를 활용

- 부동소수점 : 부동소수점 표현방식이 지니는 근본적인 오차

 

=> 컴퓨터는 실수를 100% 정확히 표현하지 못한다. 그저 근사치를 표현할 뿐

 


 

 

3) 비트 연산자

 

- &연산자 : AND 연산
- | 연산자 : OR 연산
- ^ 연산자 : Xor 연산

- ~ 연산자 : 단항연산자로서 not

- num1 << num2 : num1의 비트열을 num2칸씩 왼쪽으로 이동시킴
- num1 >> num2 : num1의 비트열을 num2칸씩 오른쪽으로 이동시킴

 

# 비트 이동연산자

: 왼쪽으로 1칸씩 이동할 때마다 정수의 값은 두배가 됨

: 이동으로 인해 새로 생기는 빈자리는 0으로 채워짐

: 이동으로 인해 밀려나는 비트들은 그냥 버려짐

 

ex)

result1= 30

result2=60

result3=120

 


문제 4-4

 

문제1. : 2의 보수법(반전 후 1더하기)를 통한 음수표현

문제2. : 비트 이동을 통한 a x 8 % 4 의 표현