헷갈렸던 내용을 복기하며 기록하는 포스팅이라 자세하지 않을 수 있습니다.
비트
우리가 사용하는 자연어에서의 문자를 컴퓨터에서는 비트라고 부른다. 비트는 2진법을 사용한다. 이는 참/거짓 같은 두 기호 중 하나만 넣을 수 있다는 뜻이다.
대표적인 비트 사용법은 앞서 말했듯이 True/False로 표현할 수 있는 질문에 대한 대답을 표현하는 것이다. 예를 들면 '추운가?' '비가 오고 있는가?'에 대한 답을 참/거짓으로 표현할 수 있고, 이러한 비트들이 표현하는 내용으로부터 새로운 비트를 만들어내는 것을 논리 연산이라 한다.
논리 연산
불리언 대수
논리 연산중에 대표적으로 불리언 대수가 있다. 이는 비트에 대해 사용할 수 있는 연산 규칙의 집합이다.
- NOT
논리적 반대를 의미한다. T는 F로, F는 T로 만든다.. - AND
둘 이상의 비트가 있을 때 사용할 수 있다. 간단히 모든 값이 T면 T, 아니라면 F다. - OR
둘 이상의 비트가 있을 때 사용할 수 있다. 간단히 값이 하나라도 T면 T, 아니라면 F다. - XOR
둘 이상의 비트가 있을 때 사용할 수 있다. 베타적 OR이라고도 부르고, 이는 어느 값 하나만 T여야 T이고, 아니라면 F다.
아래는 간단하게 볼 수 있는 진리표다.
드모르간의 법칙
a AND b라는 연산은 NOT(NOT a OR NOT b)와 같다는 법칙이다.
이 법칙은 컴퓨터에서 입력을 항상 원하는 형태로 얻을 수는 없기 때문에 유용할 수 있는 법칙이다. OR을 AND로 대신할 수 있기 때문에.
예를 들어, 입력이 '춥다' 와 '비가 온다' 라는 형식일 수 있지만, 'NOT 춥다' 와 'NOT 비가 온다' 라는 형식일 수도 있다.
정수를 비트로 표현하는 방법
우리가 일상적으로 사용하는 10진법을 2진법으로 변환하고, 2진법을 10진법으로 표현하는 방법을 알아보자.
21이라는 숫자가 있다. 이를 2진수로 표현하려면 아래와 같은 방법을 따르면 된다.
또한 10101을 10진수로 바꾸려면 아래와 같은 방법을 거치면 된다.
여기서 10진수를 거꾸로 읽는 이유는 비트의 기록 방식 때문이다. 메모리에 비트를 저장할 때 오른쪽에서 왼쪽으로 비트를 기록하기 때문에, 만약 나머지를 순서대로 읽으면 결과적으로 오른쪽에서 왼쪽으로 비트가 채워지게 되어 다른 숫자가 나온다.
여기서 비트의 가장 오른쪽을 LSB, 왼쪽을 MSB라 한다. LSB는 가장 작은 유효 비트, MSB는 가장 큰 유효 비트라 부른다.
오버플로
오버플로는 간단하게 MSB에서 올림이 발생했다는 뜻이다.
'◎ CS > 컴퓨터구조' 카테고리의 다른 글
[CS] 캐시 메모리의 총정리 (Direct Mapping Cache를 중점으로) (0) | 2024.04.15 |
---|---|
2. 2의 보수, 부동소수점 표현, 16진수, 비트 그룹 표현 (0) | 2024.03.12 |
자기계발 블로그