CS/Computer Architecture

비트와 바이트, 드 모르간의 법칙

비트와 바이트

비트(bit, binary digit)는 하나의 비트는 0이나 1의 값을 가질 수 있고, 각각은 참, 거짓 혹은 서로 배타적인 상태를 나타낸다.

바이트(byte)는 컴퓨터의 기억장치의 크기를 나타내는 단위로 자주 쓰이며, 많은 프로그래밍 언어에서 정수형에 속하는 자료형 이기도 하다. 바이트의 실질적 의미는 아스키 문자 하나를 나타낼 수 있다는 것이다. 따라서 여러 바이트를 한 word로 사용하고 있는 현재에도 대부분의 컴퓨터 하드웨어에서 메모리의 주소 단위로 사용된다.

이진 컴퓨터의 word 안에서 주소로 표현할 수 있는 가장 작은 단위에 해당하는 연속된 비트열. 예를 들어서 CDC6000 (CDC 6000 시리즈는 1960년대에 Control Data Corporation에서 제조한 단종된 메인프레임 컴퓨터 제품군) 의 메인프레임은 60비트 부동 소수점 실수를 6비트짜리 바이트 10개로 나눴으며, 따라서 대문자 로마자와 숫자만을 표현할 수 있는 천공 카드(정해진 위치에 구멍이 뚫려 있는지 아닌지로 2진법 데이터를 기록한 카드) 에 결과를 출력하기가 용이했다. 또한 CDC의 경우 12비트 I/O를 사용했기 때문에 12비트를 1바이트라 부르기도 했다. 이 정의 역시 최근에는 대부분 8비트를 가리키지만, 역사적으로 6비트, 7비트, 9비트 등의 바이트가 존재했다는 것을 알 수 있다.

"byte"는 1956년에 Dr. Werner Buchholz에 의해서 사용되었고, 이는 IBM의 IBM scratch computer를 디자인하는 동안 사용되었다. 이때는 4bit를 1byte로 설계되었다고 한다. 전형전인 I/O장비는 6bit를 1byte로 사용하다가, 나중에 System/360에 8bit를 1byte를 사용하기 시작하면서, 규격이 정해지고 표준화 되었다.

 

그렇다면 왜 현재는 8비트가 1바이트처럼 통용 되고 있을까?


 컴퓨터 아키텍쳐가 영문권인 곳에서 발전했고, 이때 0101010 로 이루어진 전자신호를 사람이 인식할 수 있는 문자로 저장을 했어야 했는데, 영어로는 이런 문자를 표현하는 코드들의 숫자가 7bit ~8bit 으로 충분했기 때문에 1Byte가 8bit로 이루어진 이유를 대략적으로 알 수 있었다.

 

드 모르간의 법칙

 

두줄로 정리 할 수 있겠다. 여기서 굳이 드모르간의 법칙을 왜 써야 할까?를 컴퓨터 언어적으로 알아보았다.

!(a || b || c) === !a && !b && !c
!(a && b && c) === !a || !b || !c
!(A && !B) === !A || B


!(A < 25 || B >= 2) || !(A >= 25 && !(B < 2))
// 위 식에 드모르간의 법칙 적용
B < 2 || A < 25

 

 

클린코딩을 위해서 안 쓸 이유가 없는게 직관적으로 보이는 것을 알 수 있겠다.

 

출처-위키백과
https://zepeh.tistory.com/313
https://happyzoo.tistory.com/180

 

'CS > Computer Architecture' 카테고리의 다른 글

메모리상의 데이터 배치  (0) 2022.03.18
인터럽트, 폴링, 상대 주소 지정  (0) 2022.02.26
텍스트 표현  (0) 2022.02.15
실수를 표현하는 방법  (0) 2022.02.12
정수를 비트로 표현하는 방법  (0) 2022.02.11