목록분류 전체보기 (221)
cyphen156

프로그램의 흐름 프로그램의 실행 흐름에는 순차, 선택, 반복이라는 세 가지의 구조가 있습니다. 이 중 우리는 이전 챕터에서 프로그래밍에 있어서 조건에 따른 선택이라는 흐름 구조를 배웠습니다. 이번에 공부할 내용은 특정한 명령을 반복해서 실행시키기 위한 반복 구조입니다. 반복 구조 프로그램에서 특정한 명령을 반복해서 사용해야 할 때, 사용자의 수고로움을 줄이기 위해 개발되었습니다. 반복문에는 while과 for문이 있으며 loop문이라고도 합니다. 반복문에는 항상 반복을 제어하기 위한 변수가 존재하는데 저는 이것을 반복조건문이라고 부릅니다. 반복조건문에는 1. 초기식, 2. 조건식, 3. 증감식으로 세가지 요소가 존재합니다. 반복문은 이 세 요소중 조건식에 해당하는 내용이 false가 될 때 까지 명령을 ..

앞서 장에서 가산기라는 논리 연산 장치를 만들었다. 이제 필요한것은 계산한 결과를 저장해 놓을 기억장치다. "임시로 저장하던, 반영구적으로 저장하던 모든것은 결국 Memory라는 기억장치로 귀결된다. 연산하는 방법 조차도 어딘가에 기록해놓아야 나중에 가져다 쓸것 아닌가?" "사람도 뇌속 어딘가에 저장해 놓았다가 기억을 되새기면서 회상하지 않는가?" 다만 여기서 만들 메모리 칩은 앞서 만든 연산기와는 다르게 시간(Timeline)에 영향을 받는다. 과거의 기록이 현재의 기록에 영향을 미친다는 것이다. 이것을 조합(Combination)과 순차(Sequential)이라고 한다. 그럼 시간의 흐름을 어떻게 알까? Tick-Tock이라는 이진 신호 주기(Clock)을 사용해 판단한다. Tick(입력)의 시작과 ..

1장에서 논리 게이트를 만들었으니 2장에서는 만들어진 논리게이트들을 조합해 산술논리연산장치(Arithmetic Logical Unit)를 만들 것이다. ALU는 CPU에서 연산을 담당하는 핵심 부품이다. 먼저 컴퓨터는 항상 모든 연산을 2진수의 덧셈을 통해 처리한다.때문에 우리는 맨 처음 덧셈 연산을 수행해주는 가산기(Adder)를 만들어야 한다. 2진수의 덧셈 연산 예를 들어 10진법 수 2개 15, 6을 덧셈연산한다고 생각해보자 10진수 체계에서의 두 자리 수 덧셈은 한 자리 수 5+6은 1의 올림수가 발생하고, 결과가 1이고, 두 자리 수 1+0은 한 자리 수 덧셈연산에서 발생한 올림 수 1을 추가로 더해 2라는 결과를 출력하고, 최종적으로 21이라는 결과를 출력한다. 코드로 표시하면 이렇게 된다...

※ 주의 글쓴이의 주관 200% 대충 이런생각하는사람도 있구나 정도로 받아들여줬으면 좋겠습니다. 잘못알고있다면 알려주시면 감사하겠습니다. 어제 퇴근하면서 좋아하는 개발자분(유튜브에 nullnull한 교수님이 있습니다...)이 자바 백엔드 공부하시면서 느낀점에 대한 영상을 시청했는데 상수라는 개념에 대한 이야기가 잠깐 나왔다. 내가 아는 상수는 선언과 동시에 초기화되어야 하는, 데이터의 불변성을 지키기 위해 선언되는 변수가 상수라는 것이었다. C와 C++에서는 상수가 앞서 언급했듯이 선언과 동시에 초기화 되고, 이 데이터가 변해서는 안된다는 것을 명시해주는 것이다. C/C++에서의 #define과 const의 차이 이 둘은 서로 비슷하게 상수의 역할을 하지만 엄청난 차이가 존재했다. 바로 #define은 ..

Boolean : Base of Computer 불리언이란 뭘까? 간단히 말하면 On/Off기능을 가지고 있는 스위치다. 디지털 기기는 참과 거짓이라는 2진 논리로 모든 것들을 처리하는데 이 2진 논리를 응용해서 만든게 불리언(부울 논)다. 이 챕터에서는 부울 논리에 대해 공부하고, NAND 논리 게이트를 이용해 16비트 AND, OR, NOT, XOR 게이트와 멀티플렉서, 디멀티플렉서를 만들어 보고, 32비트 체계로 확장하는 것을 할 것이다. 부울 대수(Boolean algebra) 0/1로 표현되는 2진수 논리 기본 부울 연산자 AND : A * B, A ∧ B OR : A + B, A ∨ B NOT : !A, ~A, ¬A 복합 부울 연산자 NAND(NOT AND) : !(A ∧ B), 유니버셜 게이..