3주차 강의 정리(이경훈) - aksrud/3kingOfGod GitHub Wiki
cpu내에서 실제 2진수 연산을 수행하는 장치
cpu내에 있는 기억 장치로 컴퓨터에 있는 메모리 중에 가장 빠른 성능을 자랑한다
cpu가 주 기억 장치인 램과 데이터를 주고 받을 때 램의 속도가 느리기 때문에 램의 중간 버퍼인 L1, L2, L3 캐시를 만들어 자주 쓰는 데이터를 예측해서 저장하여 병목 현상을 예방한다
램은 임의의 영역에 접근하여 읽고 쓰기가 가능한 주 기억 장치 이고 휘발성 메모리 즉 전원을 끄면 안에 저장하고 있던 데이터가 지워진다.
저장장치에 있는 프로그램을 램에 로딩 시키면 그 프로그램은 프로세스라 부르며 그것을 우리는 프로그램을 실행하였다고 한다.
램과는 다르게 비 휘발성 메모리로 전원을 꺼도 안에 저장한 데이터는 그대로 남아있다 저장장치로는 hdd, sdd등이 있다.
메모리는 1BYTE의 단위로 구성되고 있으며 그 안에 값을 저장 할 수 있다.
운영체제가 32bit라면 메모리의 주소는 2^32만큼 있으며 64bit라면 2^64만큼 인식 할 수 있다.(실제로 메모리 크기가 그렇다는 것은 아님)
- 부호 (+, -)
- 증감 (++, --) 뒤에 붙이면 코드 블럭이 끝난후 연산.
- 산술 연산 (+, -, /, *, %)
- 관계 연산 (<, >, <=, >=)
- 논리 연산 (대충) (!=, ==, &, |, ^,&&, ||, <<, >>)
#include <stdio.h>
int main() {
int a = 1;
int b = 0;
printf("%d\n", a&&b);
printf("%d\n", a||b);
printf("%d\n", !a);
return 0;
}
#include <stdio.h>
int main() {
int a = 10;
int b = 3;
b = a++;
printf("%d %d\n", a, b);
return 0;
}
#include <stdio.h>
int main() {
int a = 10;
int b = 3;
++a;
printf("%d\n", a);
a = a + 1;
printf("%d\n", a);
return 0;
}
#include <stdio.h>
int main() {
int a = 10;
int b = 3;
printf("%d\n", a == b);
printf("%d\n", a != b);
printf("%d\n", a > b);
printf("%d\n", a < b);
printf("%d\n", a >= b);
printf("%d\n", a <= b);
return 0;
}
#include <stdio.h>
int main() {
int n = 10;
int a = 1 + 2;
int b = 10 / 3;
printf("%d %d\n", n, sizeof(n));
printf("%p %d\n", &n, sizeof(&n));
printf("%d\n", a);
printf("%d\n", b);
return 0;
}