목록self study (99)
happy coding
TCP school을 보고 정리한 내용입니다. 컴파일러를 사용하는 C언어나 자바와는 달리 인터프리터에 의해 실행되는 스크립트 언어인 파이썬의 특징은 1. 인터프리터 언어이다. 2. 문법이 쉽고 간결하다. 3. 생산성이 높아 개발 속도가 빠르다. 가 있다. 여기서 인터프리터(interpreter)란 소스 코드를 처음부터 한 라인씩 차례대로 해석하며 실행하는 프로그램을 의미하는데, 한 라인씩 바로 기계어로 변환하기 때문에 실행 속도가 컴파일러 언어에 비해 다소 느리지만, 코드가 완전히 작성되지 않아도 작성된 부분까지만을 테스트할 수 있으며 대화형 기능을 통해 사용자가 곧바로 코드를 수정할 수 있다는 장점을 가지고 있다. 파이썬은 블록을 중괄호로 구분하는 C언어나 자바와는 달리 소스코드의 들여쓰기로 구분한다...
TCP school 을 보고 정리한 내용입니다. 실수의 표현 방식 실수를 표현하는 방법은 정수에 비해 훨씬 복잡한데, 컴퓨터에서는 실수를 정수와 마찬가지로 2진수로만 표현해야 하기 때문이다. 따라서 실수를 표현하기 위한 다양한 방법들이 연구되었으며, 1. 고정 소수점 방식 2. 부동 소수점 방식 이 사용되고 있다. 고정 소수점 (fixed point) 방식 실수는 보통 정수부와 소수부로 나눌 수 있는데, 이것을 이용해 소수부의 자릿수를 미리 정해 놓고, 고정된 자릿수로 소수를 표현하는 방식을 사용할 수 있다. 하지만 이 방식은 정수부와 소수부의 자릿수가 크지 않으므로, 표현할 수 있는 범위가 매우 적다는 단점이 있다. 부동 소수점 (floating point) 방식 실수는 보통 정수부와 소수부로 나눌 수..
TCP school을 보고 정리한 내용입니다. 정수의 표현 정수를 표현하는 방법에는 크게 부호없는 정수와 부호있는 정수로 나누어 생각할 수 있다. 부호없는 정수를 표현할 때에는 단지 해당 정수 크기의 절댓값을 2진수로 변환해 표현하면 되지만, 부호있는 정수에서 음수를 표현하는 방법이 있다. 음수의 표현 컴퓨터에서 음수를 표현하는 방법에는 1. 부호 비트와 절댓값 방법 2. 1의 보수법 3. 2의 보수법 이 있다. 부호 비트와 절댓값 방법은 최상위 1비트로 부호를 표현하고, 나머지 비트로 해당 정수의 절댓값을 표현하는 방법이다. 이 방법을 사용하면 최상위의 1비트가 부호를 표현하기 위해 사용되어 표현할 수 있는 절댓값의 범위는 절반으로 줄어든다. 하지만 음수를 표현할 수 있으므로, 총 표현할 수 있는 크기..
TCP school 을 보고 정리한 내용입니다. 비트 단위 연산(bitwise operation) 컴퓨터는 모든 데이터를 비트 단위로 표현하고 처리하기 때문에, 이 연산을 통해 사용되는 메모리 공간을 줄이거나, 성능의 향상을 기대할 수 있다. 비트 연산자 ~ 비트를 1이면 0으로, 0이면 1로 반전시킴. (비트 NOT 연산) & 대응되는 비트가 모두 1이면 1을 반환함. (비트 AND 연산) | 대응되는 비트 중에서 하나라도 1이면 1을 반환함. (비트 OR 연산) ^ 대응되는 비트가 서로 다르면 1을 반환함. (비트 XOR 연산) 지정한 수만큼 비트들을 전부 오른쪽으로 이동시킴. (right shift 연산) 비트 연산자 진리표 비트 연산자 진리표란 각 비트의 값에 따라 얻을 수 있는 가능한 비트값을 ..
TCP school 을 보고 정리한 내용입니다. 비트(bit) 와 바이트(byte) 비트란 컴퓨터가 데이터를 처리하기 위해 사용하는 데이터의 최소 단위이며, 비트에는 2진수의 값(0과1)을 단 하나만 저장할 수 있다. 그리고 바이트란 위와 같은 비트가 8개 모여 구성되며, 한 문자를 표현할 수 있는 최소 단위이다. 바이트 저장 순서(byte order) 컴퓨터가 저장하는 데이터는 대게 32비트(4바이트)나 64비트(8바이트)로 구성되는데, 이렇게 연속되는 바이트를 순서대로 저장해야 하는데 이것을 바이트 저장 순서라고 한다. 이 순서에 따라 1. 빅 엔디안(big endian) 2. 리틀 엔디안(little endian) 으로 나눌 수 있다. 빅 엔디안(big endian) 빅 엔디안 방식은 낮은 주소에 ..
조건부 컴파일을 사용하면 지정한 조건에 따라 코드의 일정 부분을 컴파일할지 안할지를 지정할 수 있느데, 이러한 조건부 컴파일에 사용할 수 있는 조건부 컴파일 지시자(conditional compile directive)는 1. #if 2. #ifdef 3. #ifndef 가 있다. #if #if 조건식1//#if 지시자를 이용한 조건부 컴파일 형식 컴파일할 명령문1 #elif 조건식2 컴파일할 명령문2 #else 컴파일할 명령문3 #endif #if 지시자 다음에 나오는 조건식1의 결과가 0이 아니면 참, 0이면 거짓으로 간주한다. 또한, #elif 지시자를 사용해 조건식을 여러 개 사용할 수도 있다. #else 지시자를 사용해 모든 조건에 해당하지 않는 경우를 지정할 수도 있다. 여기서 주의할 점은 #..
TCP school 을 보고 정리한 내용입니다. 모듈(module) 모듈이란 프로그램을 구성하는 구성 요소로, 관련된 데이터와 함수를 하나로 묶은 단위를 의미한다. 보통 하나의 소스 파일에 모든 함수를 작성하지 않고, 함수의 기능별로 따로 모듈을 구성하는데, 이러한 모듈을 합쳐 하나의 파일로 작성하는 방식으로 프로그램을 만들게 된다. 이처럼 프로그램 코드를 기능별로 나눠 독립된 파일에 저장해 관리하는 방식을 모듈화 프로그래밍이라고 한다. 분할 컴파일 작성된 모듈은 개별적으로 컴파일된 후, 링커에 의해 하나의 실행 파일로 만들어진다. 이렇게 하나의 실행 파일을 만들기 위해 소스 파일을 여러 개로 나누어 개발하는 방식을 분할 컴파일 방식이라고 한다. 최종적인 실행 파일의 생성을 위해 접근하는 변수나 호출하는..
헤더 파일(header file) C언어에서 함수는 사용되기 전에 먼저 해당 함수의 원형이 선언되어야 한다. 이 원칙은 표준 함수에도 그대로 적용되며, 표준 함수 또한 사용되기 전에 해당 함수의 원형이 선언되어야 한다. 표준함수의 원형 및 표준 함수와 관련된 다양한 정보를 가지고 있는 파일을 표준 헤더 파일이라고 한다. 또한, 사용자는 자신만의 사용자 헤더 파일을 자유롭게 만들 수 있다. 헤더 파일의 확장자는 보통.h를 사용하며, #include 선행처리 지시자를 사용해 다른 파일에 포함시킬 수 있다. 표준 헤더 파일 표준 함수의 원형 및 표준 함수와 관련된 다양한 정보를 가지고 있는 표준 헤더 파일은 그 크기가 상당히 크지만 크기가 큰 헤더 파일을 포함한다고 프로그램의 크기가 반드시 커지는 것은 아니다..