메인보드 메인보드는 마더보드라고도 부르며, 각종 하드웨어를 장착하여 연결하는 부품을 말한다. 이전에는 굉장히 큰 마더 보드가 있었는데, 이제는 기능과 크기를 압축해서 핸드폰 만한 크기의 메인보드를 만들 수 있게 되었다. CPU CPU는 프로그램을 실행한다. 1초에 30억번에 달하는 연산을 하는데, 다음의 무엇을 할지에 대해 명령을 기다리는 것이다. 인간의 뇌처럼 지능을 가진 것은 아니고 처리능력이 매우 뛰어난 것이다. 더보기 https://youtu.be/y39D4529FM4 RAM 적은 양의 정보를 저장하는 장치이다. 속도는 매우 빠르지만 컴퓨터를 종료하면 사라지는 휘발성 메모리이다. 메인 메모리이다. 보조 기억장치 지우지 않는 이상 정보를 계속 해서 가지고 있다. 예를 들면, SSD나 HDD가 있다...
🖥️Computer Science
배열의 크기 조정하기 일정한 크기의 배열이 주어졌을 때, 그 크기를 키우려면 어떻게 해야 할까? 단순하게 현재 배열이 저장되어 있는 메모리 위치의 바로 옆에 일정 크기의 메모리를 더 덧붙이면 되겠지만, 실제로는 다른 데이터가 저장되어 있을 확률이 높다. 따라서 안전하게 새로운 공간에 큰 크기의 메모리를 다시 할당하고 기존 배열의 값들을 하나씩 옮겨줘야 한다. 따라서 이런 작업은 O(n), 즉 배열의 크기 n만큼의 실행 시간이 소요될 것이다. #include #include int main(void) { //int 자료형 3개로 이루어진 list 라는 포인터를 선언하고 메모리 할당 int *list = malloc(3 * sizeof(int)); // 포인터가 잘 선언되었는지 확인 if (list == N..
메모리 주소 16진수(Hexadecimal) 컴퓨터과학에서는 숫자를 10진수나, 2진수 대신 16진수로 표현하는 경우가 많다. 4bits 씩 16진수로 변환 후 0x를 붙혀 뒤에 오는 문자들이 16진수임을 알려준다. 컴퓨터는 8개의 비트가 모인 바이트 단위로 정보를 표현 한다. 그래서 2개의 16진수는 1byte의 2진수로 변환되기 때문에 정보를 표현하기 매우 유용하다. C에서는 변수의 메모리상 주소를 받기 위해 &이라는 연산자를 사용할 수 있다. #include int main(void) { int n = 50; printf("%p\n", &n); } 위 코드를 실행하면 ‘0x7ffe00b3adbc’와 같은 값을 얻을 수 있고, 이는 16진법으로 표현된 메모리의 주소이다 반대로 *를 사용하면 그 메모리..
검색 알고리즘 선형 검색 배열의 인덱스를 처음부터 끝까지 하나씩 증가시키면서 방문하여 그 값이 속하는 지를 검사한다. 이진 검색 만약 배열이 정렬되어 있다면, 배열 중간 인덱스부터 시작하여 찾고자 하는 값과 비교하며 그보다 작은 인덱스 또는 큰 인덱스로 이동을 반복한다. 알고리즘 표기법 Big O는 알고리즘 실행시간의 상한을 나타낸 것이다. O(n)은 on the order of 의 약자로 쉽게 생각하면 ~만큼의 정도로 커지는 것이라고 볼 수 있다. O(n)은 n만큼 거지는 것이므로 n이 늘어날 수록 선형적으로 증가하게 된다. 따라서 logn과 같은 형태가 되어야 좋은 성능을 낸다고 할 수 있겠다. O(n^^2) O(n log n) O(n) -선형검색 O(log n) - 이진 검색 O(1) Big Ω는 ..
컴파일링 #include int main(void) { printf("hello, world\n"); } 위와 같은 코드를 살펴보면 printf라는 함수는 괄호 안에 있는 문자열을 출력하는 함수이다. 그리고 이 함수를 출력하기 위해서는 stdio.h라는 라이브러리가 필요하다. (stdio.h는 헤더파일로 C언어로 작성되어 있으며 파일명이 .h로 끝나는 파일이다. 그래서 이후 프로그램을 컴파일하게 되면, 파일 속 들어 있는 printf 함수의 초기 버전으로 하여금 컴퓨터가 알 수 있도록 한다.) 우리는 이전에 clang hello.c 로 컴파일을 하고, ./a.out 명령으로 프로그램을 실행하였다. 만약 a.out 처럼 엉뚱한 이름이 아닌 다른 이름으로 컴파일을 하고 싶다면 clang -o hello he..
C기초 c 어는 아주 오래되고 전통적인 순수 텍스트 기반의 언어이다. int main(void)는 우리가 코드를 실행할 수 있도록 시작한다는 의미를 가지고 있다. C에는 printf라는 함수가 있다. 글자나 단어, 문자을 적을 때는 언제나 텍스트에 " " 쌍 따옴표로 감싸야 한다. 그리고 우리가 일상에서 문장의 끝에 붙이듯 C에서는 세미콜론( ; ) 을 붙여야 한다. (참고로 \n은 줄바꿈의 기능을 한다.) 우리가 문서를 저장하는 것처럼 , 문서.확장자명 으로 저장되는 것처럼. C로 작성된 코드에도 파일명.c로 저장해야 한다. 터미널 창의 명령어 프롬프트에서 $(달러사인) 기호 옆에 우리가 원하는 명령어를 입력하면 된다. clang hello.c 라는 명령어는 "clang" 이라는 컴파일러로 "hello..