진법변환
2진법
- 자릿수당 2의 제곱으로 표현(0이면 없음 1이면 있음)
- ex.10010⇒24+21=16+2=18
8진법
- 자릿수당 8의 제곱으로 표현
- ex.121⇒(82∗1)+(81∗2)+(80∗1)=64+16+1=81
16진법
- 자릿수당 16의 제곱으로 표현(9를 초과하면 알파벳으로 표현 10=A, 11=B.…. 15=F)
- ex.B27⇒(162∗11)+(161∗2)+(160∗7)=2,816+32+7=2855
2진수의 소수변환
- 정수부분을 변환후 소수점밑의 수들은 2를 곱하여 정수부로 올라온 수를 적는다
- 이 과정을 0이될 때까지 0이되지 않는다면 근삿값을 구할 떄까지 반복한다.
EX)
0.6875*2 = ’1’.3750 — 0.’1’
0.3750*2 = ’0’.7500 — 0.1’0’
0.7500*2 = ’1’.5000 — 0.10’1’
0.5000*2 = ’1’.0000 — 0.101’1’
0.68759(10)=0.1011(2)
고정 소수점
- 고정 소수점: 컴퓨터에서 정수를 표현할 때 사용하는 형식으로 2bytes, 4bytes 등으로 표현한다
- 고정 소수점에서는 소수점이 특정위체 고정되어있다고 가정하여 표현한다.
- ex. 19를 2bytes 고정소수점으로 표현하면
- 0000000000010011 가 된다.
- 첫 bit는 부호bit로 0은 양수, 1은 음수를 표현한다
- 1이 아닌부분은 전부 0으로 채운다
부동 소수점
컴퓨터에서 주로 실수를 표현할 때 사용하는 형식으로 4bytes 배정도, 8bytes 배정도 등으로 표현한다
지수형태의 표현
실수를 다음과 같이 표현한다
213.45=21345∗10−2=0.21345∗103
- 부호부, 지수부, 가수부(소수부)로 구분한다.
- 부호부는 최상위 비트로 첫 1bit이며 양수는 0, 음수는 1로 표현한다
- 지수부는 바이어스된 지수를 2진수로 표시한다
- 가수부(소수부)는 소수점아래 10진 유효숫자를 2진수로 변환해 표시한다
- 이때 소수점은 지수부와 가수부 사이에 있는것으로 가정한다
바이어스된 지수
지수부는 부호를 표현하지 않고 바이어스를 사용해 지수의 양수와 음수를 표현한다.
즉 8bits로 지수부를 나타낸다면 수의 값은 0~255이므로 127이 기준이 된다.
따라서 지수부가 127이면 0승 128이면 1승, 129이면 2승이 되고, 126이면 -1승, 125면 -2승을 나타낸다.
EX) 지수부는 8bits
123.23=1111011.01
1111011.01=1.11101101∗26
지수부:127(기준)+6=133
EX.부동소수점) -123.35를 4bytes로 표현
- 10진수 → 2진수
- 정수 : 123 = 1111011
- 소수 : 0.25 = 0.01
- 123.25(10) = 1111011.01(2)
- 정규화 하기
- 1111011.01=1.11101101∗26
- 부호비트, 지수부, 가수부 구하기
- 부호비트 : 음수이므로 1
- 지수부 : 127(바이어스값)+6=133, 133 = 100000101
- 가수부 : 정규화에서 정수1를 제외한 값인 11101101
- 4bytes 부동 소수점 데이터 형식으로 표현
- 1 100000101 1110110100000000000000
- 1100 0010 1111 0110 1000 0000 0000 0000(4bits씩 끊음)
2진수↔8진수↔16진수
2진수와 8진수,16진수의 변환은 2진수를 각각 3자리, 4자리씩 묶어 계산한다
EX)
10110101 ⇒ 10/110/101
10/110/101 ⇒ 265
10110101(2)=265(8)
10110101 ⇒ 1011/0101
1011/0101 ⇒ B5
10110101(2)=B5(16)
2진수의 연산
덧셈
자릿수마다 덧셈을 하고 그값이 1을 넘으면 다음자리로 보낸다.
ex) 1011+0101=10000
뺄셈
1의 보수 / 2의 보수
컴퓨터는 덧셈으로 처리해야 하기에 보수를 사용한다
- 1의보수: 0을 1로 1은 0으로
- 2의 보수: 그거에 +1
- ex) 1001의 1의보수와 2의보수
- 1의 보수에 의한 뺄셈
- 피감수(뺌을 당하는 수)에 1의 보수를 취한다
- 감수와 피감수를 더한다
- 자리를 넘어간 수는 더한다(결과값에 1의 보수를 취하지 않는다)
- 자리를 넘어가지 않는다면 결과값에 1의 보수를 취하고 -부호를 붙인다
- 2의 보수에 의한 뺄셈
- 피감수에 2의 보수를 취한다
- 감수와 피감수를 더한다
- 자리를 넘어가는 수는 버린다(이경우 2의 보수를 취하지 않는다
- 자리를 넘어가지 않으면 이의 보수를 취하고 -부호를 붙인다
곱셈
- 승수의 최하위 자리부터 승수가 1이면 피승수를 더하고 그렇지 않으면 더하지 않는다
- 이때 승수의 자릿수에 따라 결과값의 자리수도 커진다
- 모든 결과값을 더한다
나눗셈
- 피제수에서 제수를 더 이상 뺄 수 없을 때까지 반복한다
- 뺄 수 있으면 몫은 1, 아니면 몫은 0이 된다