2. 프로그래밍이란?
1. 이진수와 전기신호
1.1 전기신호를 이진수로
![](https://blog.kakaocdn.net/dn/dcdKif/btsITC1XDYB/bs1BPqQuu7ivENQoZoHo2K/img.gif)
![](https://blog.kakaocdn.net/dn/z5U5M/btsIYegduMG/KFLgmko6qGJDzqeLgaTC5K/img.png)
1.2 10진수와 2진수
![](https://blog.kakaocdn.net/dn/U0tfj/btsIW3zZCQk/kyCCmOeLsx2zAq8l0yC831/img.png)
1.3 비트와 바이트 (1) - 2진수
![](https://blog.kakaocdn.net/dn/zV6PS/btsIWlgS7Th/96BV68Ow3mT0VQx9Vkgz1k/img.png)
컴퓨터를 포함한 이 세상의 모든 기계는, 전기 신호가 "있다.", "없다."
2가지 경우의 수로 작동한다.
2가지 경우의 수는, 2진수로 나타낼 수 있다. 이를 컴퓨터에서는 1bit 라고 한다.
추가)
1bit 는 데이터의 최소 단위다.
1Byte 는 컴퓨터의 최소 처리 단위
1 bit 를 저장해도, 최소 1byte 단위로 저장된다.
int 변수에 1bit를 저장해도 4byte가 사용된다.
1.4 비트와 바이트 (1) - 경우의 수와 패턴
![](https://blog.kakaocdn.net/dn/7yyRH/btsIZcWjxWl/HOasP0QNlsIitTkufHWD0K/img.png)
1.5 비트와 바이트 (3) - 16진수
![](https://blog.kakaocdn.net/dn/cdOzd5/btsIX9F8TBB/8pDd68zS7AbFk4BkMhN7LK/img.png)
![](https://blog.kakaocdn.net/dn/cVMb58/btsISrfZ7R4/18yw6cFDuXsZ91yBxaKhD1/img.png)
![](https://blog.kakaocdn.net/dn/y3pB9/btsIWxO8s9D/zIy9eExzKsW0rfDOiaMLt1/img.png)
1.6 이진수의 덧셈과 뺄셈
컴퓨터는 덧셈만 가능합니다. 뺄셈은 보수의 덧셈을 활용합니다.
곱셉은 덧셈의 반복이고, 나눗셈은 뺄셈의 반복입니다.
이진수 뺄셈하는 법: 15 단계 (이미지 포함) - wikiHow
이진수 뺄셈하는 법: 15 단계 (이미지 포함) - wikiHow
이진수 뺄셈은 십진수 뺄셈과 약간 다릅니다. 하지만 아래 설명을 잘 따라하면 쉽게, 어쩌면 더욱 쉽게 해결할 수 있습니다. 일반 뺄셈을 할 때처럼 숫자들을 나열하세요. 큰 숫자는 위에, 그리
ko.wikihow.com
1.7 인간과 컴퓨터
인간은 10진수를 사용합니다.
컴퓨터는 2진수를 사용합니다.
10진수 체계는 2진수 체계로 변환할 수 있고, 2진수도 10진수로 변환 가능합니다.
Next. 컴퓨터가 이진수로 계산(프로그램, 로직)을 하는 방법
2. 전기신호로 기계에 명령을 내리는 방법
2.1 조지 불의 생각의 법칙
![](https://blog.kakaocdn.net/dn/dikp6f/btsIRu5oopt/Oe1C7Vv5GFETVx5yqVyfcK/img.png)
2.2 자동 수위 조절 시스템
![](https://blog.kakaocdn.net/dn/dUPelg/btsIRmT3MPw/MBi2m5bF9Kkg1FNwU5qdwK/img.png)
2.3 클로드 섀넌의 디지털 논리 설계
![](https://blog.kakaocdn.net/dn/8SK12/btsISWs78fb/F9Z7fXc3oSPkV87kuuHy30/img.png)
2.4 논리 게이트
- A, B 각각 전기 신호를 입력하고, 논리 게이트(칩 설계)에 따라 결과 S 라는 값을 출력하는 회로가 있다고 가정합니다.
![](https://blog.kakaocdn.net/dn/EnY13/btsIRftRXur/DEUtMQGomVY4gUJ89K9voK/img.png)
2.5 논리게이트로 계산 (1) - 반가산기(半加算器, half adder)
- 입력 A, 입력 B, 각각 전기 신호를 입력하고, 2진수 한자리의 결과 출력 (Sum), 자리올림수(Carry) 결과를 얻을 수 있다.
![](https://blog.kakaocdn.net/dn/Dv8X2/btsITucRZsv/TstTMTQyWMqCwvYjdjVrG1/img.png)
2.6 논리게이트로 계산 (1) - 가산기(全加算器, full adder)
- 이진수의 한 자릿수를 연산합니다.
- 자리올림수를 연결해 여러 자리의 이진수 덧셈이 가능합니다.
- 두개의 반가산기와 하나의 OR 로 구성됩니다.
![](https://blog.kakaocdn.net/dn/bdI9vV/btsIVkmyTU9/Os2tFrHz6asIgEUDuPQdTk/img.png)
2.7 논리 게이트 이해
3. 천공카드와 전기 신호, 그리고 프로그래밍
다시 이전에 시청한 유투브 영상으로 돌아와서
천공카드, 전기신호, 프로그램에 대해 이해해보자.
4. 기계어와 어셈블리어, 그리고 프로그래밍
4.1 기계어, 저급언어(Low level language)
![](https://blog.kakaocdn.net/dn/bC7Y0r/btsISMj6Jf3/KykT9CdLROguFOqxv22wl1/img.gif)
![](https://blog.kakaocdn.net/dn/tVfFs/btsIQ0KDkAa/bU9W8LMfnkNr0kKBk5qKu1/img.png)
4.2 CPU는 어떻게 동작할까?
4.3 어셈블리어
위 3.2 유투브 영상의 12:21 ~ 17:54 부분과 아래 나무위키를 참고한다.
기계어와 어셈블리어의 특징에 대해 이해한다.
https://namu.wiki/w/%EA%B8%B0%EA%B3%84%EC%96%B4#toc
기계어
機 械 語 / Machine Code / Machine language 기계어(Machine language)로도
namu.wiki