컴퓨터 구조와 프로그래밍

서재환·2021년 10월 7일
0

한번즘 들어봤을 컴퓨터 용어

AND 와 XOR

불리언 true or false 개념에서 2*2 true, false table 중 에서 AND와 XOR 테이블에 대해서 얘기해보기로 하자. 두개의 비트만 있고 각 비트간 더하기 연산을 수행한다고 했을 때 올림이 발생할 경우 피연산자 간(비트간) AND 연산자가 적용되고 올림이 발생하지 않는 합의 경우 두 비트간 XOR연산이 발생한다.

예를 들어 비트로 구성된 2진수의 다음과 같은 연산이 있다고 했을 때 10 + 11 = 101 이고 올림이 발생하지 않은 2^0자리에서는 '1'과 '0'의 XOR연산만 적용되고 올림이 발생한 2^1의 자리에선 (1+1) 올릴 숫자에 대해선 AND가 (1 AND 1) 해당 자리의 숫자에 대해선 (1 XOR 1)의 연산이 적용된다.

부호와크기 방식

최상위 비트를 + 또는 - 를 나타내는 데 사용하는 방법을 일컫는다. 단점이 있는데 0을 표현하는 2가지의 방법이 생겨(1000, 0000)비용이 낭비되고 두번째로 XOR과 AND를 통한 연산이 불가능하다. 실제로 0001(1)과 1001(-1)을 더할 경우 1010(-2)라는 값이 산출된고 위의 법칙이 적용되지 않는다.

실수표현방법

미국전자전기공학회(IEEE) 754에서 제시한 기본정밀도와 2배 정밀도를 많이 사용한다. 부동소수점을 표현하는 방법에 대해선 나중에 추가하도록 하겠다.

컴퓨터 언어의 문맥(context)

문맥에 따라 무엇을 표현하기 위해 사용한 기호가 사람들에게 다른 기호가 될 수 있다. 점과 선으로 표현한 모스부호가 A(._)의 경우 약속으로 정했지만 약속은 재정립될 수 있다. 비트 연산에선 세가지 문맥이 있는데 부호화크기 연산, 1의 보수 연산, 2의 보수 연산이 있어 1001의 값은 각각 -1, -6, -7이라는 다른 값을 갖는다. 비용적인 측면에서 2의 보수 연산을 사용한다. 이와 유사하게 서로 다른 문맥을 사용하기 때문에 인코딩이라는 개념이 있다.

아스키코드

정보교환을 위한 미국 표준 코드. 7비트를 사용하여 문자를 표현하고 문자의 종류에는 그냥 문자와 제어문자가 있다.

유니코드

비트 값이 저렴해지면서 16비트를 사용하여 문자를 표현했다.

UTF-8

유니코드 변환 형식 8비트(Unicode Transformation Format 8bits)

인코딩

다른 비트 패턴을 사용하기 위해 사용하는 비트 패턴. 아스키코드를 예로 들면 7비트를 통해 약속된 문자 또는 제어문자를 사용하고 있는데 UTF-8(8비트 유니코드변형 포맷)으로 변환할 때(하나의 예시) 인코딩 한다고 한다. 문자를 다루는 비트의 개수가 서로 다르기 때문이다. UTF-8도 아스키코드처럼 이름이 있는 또 하나의 비트패턴이다.

문자 리터럴

특별한 의미를 지니는 문자를 리터럴로 사용할 필요가 있다라는 말에서 문자리터럴이란 정말 아무의미없이 해당 문자의 모양만을 차용해서 목적을 위해 사용한다는 의미이다. 문자리터럴을 차용해서 새로운 의미를 만들어 낼 때 구성요소로 사용하는데 그 때 사용하는 문자가 특정 의미가 있어서라기보다는 글자 형태만을 따와서 사용하는 목적이 있기에 그런 의미로 사용된다.

데이터 저장

저장 방법을 어떻게 할지는 지금은 잘 모르겠지만 나중에도 사용 할 것 같은 데이터일 경우 저장하는 것이 연산을 줄이는 방법으로 사용될 수 있음에 적어두었다.

0개의 댓글