All about Computer/이론

(8)
앨리어싱(Aliasing) ① 앨리어싱은 한 메모리의 데이터 위치에 프로그램의 다른 식별자(identifer)로 접근하는 것을 말한다. ② 하나의 식별자로 데이터를 수정하는 것은 그 데이터를 참조하는 모든 변수가 수정된다. ㉠ 이러한 경우 프로그래머가 예상치 못한 상황이 벌어질 수 있다.
깊은 복사와 얕은 복사
Call by Reference와 Call by Value 작성 예정
이진수의 음수표현(2의 보수, 오버 플로와 언더 플로) 이번 포스팅은 이전 포스팅인 1의 보수 편을 참고해주시길 바랍니다. 1의 보수 방식 1의 보수 방식 ① 일반적으로 컴퓨터는 2진법을 사용하므로 컴퓨터가 사용할 수 있는 보수 방식에는 1의 보수 방식과 2의 보수 방식이 있다. ② 1의 보수 방식은 'X = A + B' 에서 기준치 X를 11111...1 hemahero.tistory.com 2의 보수 방식 그리고 1의 보수 방식과의 관계(2's complement and the relation with 1's complement) ① 2의 보수 방식은 'X = A + B' 에서 기준치 X를 0000....0000(n비트만큼 존재)으로 잡은 것이다. ㉠ 즉, 4비트를 기준으로 한다면, 기준값은 0000이 된다. ② 2의 보수 방식으로 보수 처리하는 방법은 ..
이진수의 음수표현(1의 보수 방식) 1의 보수 방식(1's complement) ① 일반적으로 컴퓨터는 2진법을 사용하므로 컴퓨터가 사용할 수 있는 보수 방식에는 1의 보수 방식과 2의 보수 방식이 있다. ② 1의 보수 방식은 'X = A + B' 에서 기준치 X를 11111...111(n비트일 경우 1의 개수가 n개만큼 존재)으로 잡은 것이다. ㉠ 즉, 4비트를 기준으로 한다면, 1의 보수 방식에서는 1111이 기준이 된다. ㉡ 설명의 편의를 위해서 1111을 기준으로 하나 일반적인 경우는 이야기가 약간 다르다. ③ 1의 보수 방식으로 보수 처리를 하는 방법은 보수 표현을 적용할 수의 0을 1로, 1을 0으로만 반전시켜주면 된다. ㉠ 예를 들어 0011을 보수 처리하면, 1100이 된다. ④ 위와 같은 방식으로 보수 처리를 하는 이유는 ..
9의 보수 방식, 10의 보수 방식 9의 보수 방식과 10의 보수 방식의 개념 ① 마이너스 기호(-)를 붙이지 않고 음수를 표현할 수 있는 방법이 존재한다. ㉠ 음수를 표현하기 전에 정수는 양의 정수, 0, 음의 정수로 이루어져있다는 것을 생각해보자. ⓐ 0을 말 그대로 0으로 취급할 것인지, 아니면 양의 정수 혹은, 음의 정수의 일부로 포함시킬 건지를 고려해야한다. ② 음수를 나타내는 방법으로 보수를 이용하는 방법이 있다. ㉠ 보수는 아래의 네이버 사전에 명시된 것처럼, 각 자리의 숫자의 합이 어느 일정한 수가 되게 하는 수이다. ⓐ A + B = C라면 C의 A에 대한 보수는 B이다. ㉡ 보수를 사용하는 근본적인 이유는 이진수의 뺄셈을 덧셈 과정으로 계산해 경제적 효율성을 높이기 위해서이다. ⓐ 뺼셈과 덧셈을 두 가지의 구분되는 과정으..
이진수의 음수 표현(부호화 절댓값의 덧셈과 뺄셈) 1. 이진수의 음수 표현 ① 십진수에서는 음수를 표현하고 싶으면 -(마이너스 기호)를 사용하면 되지만, 이진수에서는 특이한 방식으로 음수를 표현한다. ② 보수를 이용해 음수를 나타내는 방법은 무려 4가지나 있는데, 부호화 절댓값(sign and mignitude), 1의 보수 방식(one's complement), 2의 보수 방식(two's complement), 그리고 상쇄 이진수(offset binary)가 있다. ㉠ 그러나 실제로는 2의 보수 방식을 주로 사용하는데, 이유는 편리함과 경제적 효율성 때문이다. ③ 비트의 크기가 4인 경우를 생각해보자. 한 비트는 두 가지 수 0과 1을 표현할 수 있으므로, 총 16가지의 경우의 수를 가지고 있다. ㉠ 따라서 아래와 같은 16가지의 경우의 수가 만들어지..
전처리 지시자 ① C++ 프로그램은 전처리, 컴파일, 링크 세 단계를 거쳐서 빌드 된다. ② 전처리(preprocess) 작업은 코드 내에서 지시한 '메타 데이터(metadata)'를 인식하여 자동으로 코드를 수정하는 작업이다. ㉠ Karen Coyle은 메타 데이터를 "어떤 목적을 가지고 만들어진 데이터"라고 정의한다. ⓐ 메타 데이타는 대량의 정보 가운데에서 찾고 있는 정보를 효율적으로 찾아내서 이용하기 위해 일정한 규칙에 따라 콘텐츠에 부여되는 데이터이다. ㉡ 즉, 전처리 작업은 프로그램이 실행되기 전에 사전에 미리 정의되어 있는 것들을 프로세서에 등록하는 행위이다. ③ 전처리기(preprocessor)가 실행되면 각 코드 파일에서 전처리 지시자/전처리 지시문(preprocessor directive)를 찾는다...