01 진수변환
1) 다른 진수의 10진수로의 변환
ex) 27.42(8진수) = 2*8^1 + 7*8^0 + 4*8^-1 + 2*8^-2
2) 10진수의 다른 진수로 변환
소수점 윗자리는 진수로 계속 나누어 나머지를 구해내고 소수점 아래 자리는 진수를 곱하여 캐리를 구해서 알아낸다.
3) 2진수의 2^n 진수로 변환
소수점을 기준으로 n자리씩 묶어 변환한다.
4) 2^n진수의 2진수로의 변환
소수점을 기준으로 n자리씩 풀어준다.
A 1 . 6(16진수)
1010 0001 0110
5) p진수를 q진수로 변환하기
p진수를 10진수로 변환하고 다시 10진수를 q진수로 변환한다.
02 컴퓨터 문자표현
1) ASCII
아스키코드 - 7비트를 기준으로 문자표현 128개의 문자 표현가능.
2) 유니코드
문자를 16비트로 표현하므로 최대 65536자 표현가능
3) 텍스트 압축
- 런렝스 코딩 -> 반복문자*탈출문자*반복횟수
- 허프만 코딩
03 컴퓨터 정수표현
1) 2의보수
컴퓨터에서 정수를 표현하는 대표적인 방법은 2의 보수이다.(컴퓨터구조 페이지에 자세한 설명)
5-> 0101 -> 0은 1로, 1은 0으로 변환 -> 1010 - > 1을 더함 -> 1011
최상위 비트는 부호비트이다.
4비트인 경우에 표현할 수 있는 최대값은 2^3-1 최소값은 -2^3 이다
즉 -2^(n-1) ~ 2^(n-1)-1 표현가능
2) 정수의 덧셈과 뺄셈
음수인 경우에 2의 보수로 표현해서 더해주면 된다
그런데 30000 + 30000 인경우에는 2의 보수로 표현하고 더하면 이상한 값이 나오는데 표현할 수 있는 최대값을 넘었기 때문이다
이런 오류를 오버플로우라고 한다.
03 컴퓨터 실수 표현
1) 가수(mantissa), 밑수(radix), 지수(exponent) 3개의 부분으로 이루어진다.
m*r^e
-0.001101*2^2 -> -1.101*2^-1 (정규화)
지수 -1 인데 바이어스된 지수를 써야하므로 127 더해준다
cf. 바이어스된 지수를 쓰는 이유는 음의 지수를 나타내기 위함이다 .
-1+127 = 126
따라서 실수표현은
1 01111110 101000000000000000000000 이다.
최상위비트 지수(126) 가수
2) 실수 덧셈 뺄셈
작은 지수를 큰 지수에 맞춰 통일하고 가수를 더하고 정규화 시킨다.
이때 가수 부분의 자리가 부족해 가수의 일부분이 절단되는 오류를 라운드 오프 오류라고 한다.
댓글을 달아 주세요