컴퓨터가 사용하는 언어 = 기계어
= 0과1로만 이루어진 2진수를 사용
-> 진수: 10진수, 2진수, 8진수, 16진수
-> 계산을 통해 진수끼리 바꿔줄 수 있음
ex. 2진수1011001011101₂
를 16진수로 변환 : 0x165D
ex. 8진수 13135₈
를 2진수로 변환 : 001/011/001/011/101 : 1011001011101₂
바이트를 이용하면 더 간단하게 진수를 바꿀 수 있다.
0 0 0 0 0 0 0 0 ~ 1 1 1 1 1 1 1 1 -> 0 ~ 225 (256개) -> 0 ~ (2⁸-1)
: n비트로 표현 가능한 부호 없는 정수 범위 = 0 ~ (2ⁿ-1)
: 2진 정수의 덧셈의 경우, 두 수의 합이 2가 넘으면 올림수1 발생 (10진은 10 넘으면)
오버플로우 : 값의 표현 범위를 벗어나는 상태
-> 1위드가 8비트인 2진 정수의 덧셈에서 1워드를 넘는 비트가 발생하면 오버플로우가 발생했다고 한다.
-> 오버플로우가 발생하면 -> 하위8비트를 제외한 상위1비트(넘친 부분)를 삭제하고 나머지 하위8비트를 현재의 결과라고 계산한다.
아래 2가지 문제 때문에 부호와 절대값 표현을 컴퓨터에서 직접적으로 사용하기에는 한계가 있다.
1. 0은 양수도, 음수도 아닌 부호를 갖지 않는 정수이다.
2. 오버플로우에 의한 계산 오류가 발생할 수 있다.
-> 이 한계를 극복하기 위한 개념이 바로 보수이다.
보수 : 보충해주는 수
n진수에 대해서 2가지 보수가 존재한다 : n의 보수, n-1의 보수
실수는 2가지 표현방식이 있다.
: 정규화를 해줘야 한다.
정규화 : 부동 소수점 표현을 위한 형식
정규화를 통해 -> 부호, 지수, 가수 의 3가지 정보를 얻어내야 함
: Boolean 사용
Q1. 7014₈를 10진수로 표현하시오.
Q2. 11은 16진수로 어떤 문자인지 고르시오.
➀ A ➁ B ➂ C ➃ D ➄ E
Q3. 한 바이트에서 가장 왼쪽에 있는 비트를 뭐라고 부르는지 쓰시오.
Q4. 10진수에 대해 필요한 보수를 모두 고르시오.
➀ 10의 보수 ➁ 9의 보수 ➂ 5의 보수 ➃ 2의 보수 ➄ 1의 보수
Q5. 논리의 표현에서 사용되지 않는 법칙을 하나 고르시오.
➀ 결합볍칙 ➁ 항등법칙 ➂ 멱등법칙 ➃ 드모르간법칙 ➄ 가우스법칙
A1. 3596
7014₈ = 7 × 8³ + 0 × 8² + 1 × 8¹ + 4 × 8⁰ = 3596
A2. ➁ B
A3. 최상위비트
가장 왼쪽 비트를 최상위비트(n-1번 자리), 가장 오른쪽 비트를 최하위비트(0번 자리) 라고 한다.
A4. ➀ 10의 보수, ➁ 9의 보수
n진수에 대해서 필요한 보수는 두 가지로, n의 보수와 n-1의 보수이다.
그러므로 10진수에 대해 10의 보수와 9의 보수가 필요하다.
A5. ➄ 가우스법칙
논리의 표현에서는 Boolean이 사용되며,
교환법칙 / 결합법칙 / 분배법칙 / 항등법칙 / 보수법칙 / 멱등법칙 / 드모르간의 법칙 이 있다.