수업 3주차 정리 - junhwan1206/ex250310_first GitHub Wiki
모든 연산은 데이터 형식이 동일할 때만 가능하다
#include <stdio.h>
int main() { int n = 10; int a = 1 + 2; int b = 10 / 3; printf("%d\n", n);// 변수의 내용물을 읽어와서 출력 printf("%d\n", a);// 변수의 내용물을 읽어와서 출력 printf("%d\n", b);// 실제 결과는 3.33333333~ 이지만 정수로 표현된다.
} 위에 int 에 지정된 메모리 공간 (n,a,b)를 살펴보면 각 메모리는 4byte 씩 차지한다. (크기)
-
cpu(중앙처리장치) == 모든 명령은 cpu가 처리한다.
-
ALU(연산장치) == 산술논리연산장치 레지스터스스로 실행하고 작업처리 == 메모리 (연산처리 속도 빠른 메모리) 레지스터> 캐시 >메모리(램) > 디스크 하드웨어에서 가장 중요한 장치 3가지 Cpu | RAM | Disk
-
디스크 비휘발성 데이터 == 전원이 나가면 디스크는 데이터 유지한다
CPU는 Disk 와 직접 연산이나 작동하지 않는다 why? 느리니까
복구가 가능한 것들은 우리가 모르는 사이에도 전기 장치에 저장이 된다
why? 하지만 RAM과 같은 메모리들은 휘발성이라 전원이 꺼지면 손실된다
모든 설치 파일들은 Disk 장치에 저장한다(적재) 죽어있는 프로그램이라고 말한다 (램에서 활성화 안된상태 == 리눅스에서는 Kill이라고 함) 그 후 실행할 때는 RAM으로 프로그램을 올린다 콘솔이나 더블클릭 등으로의 활성화로 (사용자가 사용 가능한 프로그램이 된다) (실행 프로그램 프로세스라고 부름)(지금 당장 실행중 인 것) (라이브 상태 프로그램) 한글 프로그램 3번 연속 클릭하면 ?? 하나의 컴퓨터에는 하나의 프로그램만 구동 가능한데, 프로세스는 여러개가 가능하다 프로세스 == 명령 or 데이터 CPU 는 RAM 이랑만 대화한다 (모든 프로세스는 램에 있다) 그래서 명령을 CPU가 해석함
오류, 속도, 보안 때문이다 코딩에서 연산(덧셈 뺄셈 등등)은 명령이다
int 로 설정해주는 n,a,b 등의 메모리는 RAM을 말한다
보편적으로 메모리는 RAM을 지칭한다
메모리(RAM) : 저장장치 Adress( 위치 == 번호가 있어야 함 == 주소 ) (보관) write, save (꺼내옴) read 1 byte 당 1개의 주소가 들어감 int(4byte) == 4개 주소 1G == 2^30B, 4G ==2^2x2^30 == 주소 개수 2^32개 == 0~FFFFFFFF 주소는 모두 16진수로 표기 (컴퓨터가 이해하기 편한 표현법) 64비트 운영체제 라는 것은 한번 운영할 때 64비트 만큼의 처리가 가능 ==처리 단위
하프연산 (효율적인 방법) 작은 용량의 연산 또는 처리는 1번 운영(64비트)하고 용량 차이간 나머지 용량을 버림
Value Capacity
I/O 입출력 함수 연산자 제어문 포인터 + 배열 + 문자열 구조체 함수 파일 입출력 연산자 비교연산자 값은 참 또는 거짓 참==1 거짓==0
연산자 단항 1개 == P연산자 1개 이항 2개 [(ex.) a+b , a==b 등] == P연산자 2개 이상 조건부 연산자 연산자 우선 순위
#include <stdio.h>
int main()
{
//단항 연산자(++, --)
//프로그램 내 1씩 증가 감소 카운팅
int a = 10;
int b = 0;
//b = ++a;
b = a++;
printf(" %d %d\n ", a, b);
}
++a 와 a++의 차이를 알아야 한다.
++a 는 연산 중에 바로 증가 a++은 1을 증가하되 단, 해당 문장을 벗어났을 때에 증가함 논리 연산자(불 또는 불링 연산) 참과 거짓으로만 연산을 이루어내는 방법
타 언어 참과 거짓을 true 와 false로 표현 c 언어는 1과 0 AND 연산자 둘 다 참일 때만 참 AB F 00 0 01 0 10 0 11 1
OR 연산자 둘 다 거짓일 때만 거짓 AB F 00 0 01 1 10 1 11 1
NOT 연산자 A F 0 1 1 0