프로그래밍 언어/C 24

[C언어 참조] 정수와 실수의 표현

A. 정수의 표현 1. 정수의 표현 컴퓨터에서 정수를 표현하는 방법은 아래 두가지로 생각할 수 있음 a. 부호 없는 정수 해당 정수 크기의 절댓값을 2진수로 변환하여 표현 b. 부호 있는 정수 음수를 표현하는 3가지 방법이 있음 부호 비트와 절댓값 방법 1의 보수법 2의 보수법 2. 음수의 표현 a. 부호 비트와 절댓값 방법 🌟 최상위 1비트로 부호를 표현하고, 나머지 비트로 해당 정수의 절댓값을 표현하는 방법 최상위의 1비트가 부호를 표현하기 위해 사용되어 표현할 수 있는 절댓값의 범위는 절반으로 줄어들지만 음수를 표현할 수 있어서 총 표현할 수 있는 크기는 거의 비슷함 💥 이 방법은 +0과 -0이 따로 존재하게 됨 b. 1의 보수법 🌟 해당 양수의 모든 비트를 반전하여 음수를 표현하는 방법 이 방법은..

[C(++)언어 참조] 비트 단위 연산

더보기 연산자 총정리 -2 (비교, 논리, 비트, 기타 등) 5. 비교 연산자 a. 비교 연산자란? 🌟 피연산자 사이의 상대적인 크기를 판단하는 연산자 b. 비교 연산의 특징 두 개의 피연산자를 가지는 이항 연산자 피연산자들의 결합 방향 : ➡ c. 비교 연산 monamu.tistory.com 여기에서 연결되는 글, 공부하다보니 내용이 많아져서 따로 작성함 A. 비트 단위 연산(bitwise operation) 1. 비트 연산자 a. 비트 연산자란? 🌟 컴퓨터에서 데이터를 비트 단위로 조작하는 데 사용되는 연산자 b. 비트 단위 연산을 사용하는 이유 하드웨어의 발달로 비트단위로 연산을 예전처럼 하지는 않지만, 사용되는 메모리 공간을 줄이거나, 성능의 향상을 기대할 수 있기 때문에 하드웨어 관련 프로그래밍..

[C언어 참조] 바이트 저장 순서

A. 바이트 저장 순서 1. 비트(bit)와 바이트(byte) a. 비트(bit) 🌟 컴퓨터가 데이터를 처리하기 위해 사용하는 데이터의 최소 단위 비트는 0과 1 중 단 하나만 저장 가능 b. 바이트(byte) 바이트 = 비트 8개 🌟 한 문자를 표현할 수 있는 최소 단위 2. 바이트 저장 순서(byte order) 컴퓨터는 데이터를 메모리에 저장할 때 바이트(byte) 단위로 나눠서 저장 하지만 컴퓨터가 저장하는 데이터 -> 32비트 / 64비트로 구성 따라서 연속되는 바이트를 순서대로 저장하는것을 바이트 저장 순서(byte order)라고 함 바이트가 저장되는 순서에 따라 나눈 방식은 두가지가 있음 a. 빅 엔디안(big endian) 🌟 낮은 주소에 데이터의 높은 바이트(MSB, Most Signi..

[컴파일] 헤더파일, 분할 컴파일, 조건부 컴파일

더보기 A. 헤더 파일 1. 헤더 파일(header file) a. 헤더파일이란? C언어에서 함수는 사용되기 전 함수의 원형이 선언되어야 함 (이 원칙은 표준 함수에도 적용) 🌟 이러한 표준 함수의 원형 및 표준 함수와 관련된 다양한 정보를 가지고 있는 파일을 표준 헤더 파일 사용자는 자신만의 사용자 헤더 파일을 자유롭게 만들 수 있음 확장자 .h #include 선행처리 지시자를 사용해 다른 파일에 포함시킬 수 있음 b. 표준 헤더 파일 다양한 정보를 가지고 있는 파일이라 크기가 크지만, 큰 헤더파일이라고 프로그램 크기가 커지는건 X 헤더 파일의 내용은 실행파일에 추가되는 내용보다 컴파일러가 실행 파일을 만드는데 사용하는 정보가 대부분이기 때문 💙 표준 헤더 파일에 저장되는 정보 1) 표준 함수의 원형..

[선행처리] 선행처리기, 매크로 함수, 미리 정의된 매크로

더보기 A. 선행처리기 1. 선행처리 a. 선행처리(preprocess)란? 🌟 실행 파일을 생성하는 과정에서 소스 파일 내에 존재하는 선행처리 지시문을 처리하는 작업 컴파일 하기 전 선행처리기(preprocessor)에 의해 먼저 처리 코드 생성 ❌ 코드 소스 재구성 ⭕ b. 선행처리문의 특징 선행처리 문자(#)로 시작 코드 내 하나의 라인 모두 차지 (선행처리문 뒤에는 주석만 가능) 세미콜론 X 소스 파일 어디에나 위치할 수 있지만, 선행처리문이 위치한 곳 부터 파일의 끝까지만 영향 2. 선행처리 지시자 (preprocessing directives) a. 선행처리 지시자의 종류 선행처리 지시자 설명 #include 외부에 선언된 함수나 상수 등을 사용하기 위해, 함수나 상수가 포함된 외부 파일을 현..

[입력과 출력] 파일 입출력 : fopen() 모드 문자열

A. 모드 문자열 1. 모드 문자열 a. fopen() 함수의 모드 문자열이란? 🌟 파일의 사용 용도를 결정하고, 파일의 데이터를 어떤 방식으로 입출력할지를 결정 b. 사용 용도 r (read mode) : 읽기 전용 모드 w (write mode) : 쓰기 전용 모드 a (append mode) : 추가 모드 c. 입출력 방식 t (text mode) : 해당 파일의 데이터를 텍스트 파일로 인식하고 입출력 b (binary mode) : 해당 파일의 데이터를 바이너리 파일로 인식하고 입출력 d. 최종 모드 문자열표 모드 문자열 설명 r 파일을 오로지 읽는 것만 가능한 텍스트 모드로 개방 w 파일을 쓰는 것만이 가능한 텍스트 모드로 개방 파일이 없으면 새 파일을 만들고, 파일이 있으면 해당 파일의 모든 ..

[입력과 출력] 콘솔 입출력, 파일 입출력, 파일 입출력 함수

A. 콘솔 입출력 공부하기 전 C 언어의 기본적인 입출력 방식에 대해 알아야 함 [문자와 문자열] 입출력 함수 총정리 1 : 스트림과 문자 A. 기본적인 입출력 1. 스트림 (stream) a. 스트림이란? 🌟 실제의 입력이나 출력이 표현된 데이터의 이상화된 흐름 = 운영체제에 의해 생성되는 가상의 연결 고리 C언어는 파일이나 콘솔의 입출력 monamu.tistory.com 1. 버퍼(buffer) a. 버퍼란? 🌟 표준 입출력 함수를 사용할 때 사용하는 임시 메모리 공간 입력 작업 뿐 아니라 printf() 함수 등을 통해 모니터에 데이터를 출력할 때도 버퍼를 사용 출력하고자 하는 데이터는 일단 출력 버퍼에 저장되었다가 출력 스트림을 통해 모니터로 전송 b. 버퍼의 장단점 HTML 삽입 미리보기할 수 ..

[문자와 문자열] 입출력 함수 총정리 2 : 문자열

C. 문자열 1. 문자열(string) a. 문자열 상수(string constant) 큰따옴표("")를 사용해 표현되는 문자열을 문자열 상수(string constant)라고 함 이름이 없고, 내용을 변경할 수 없어서 상수라고 표현함 b. 문자열 🌟 메모리에 저장된 일련의 연속된 문자(character)들의 집합 👉 문자형 배열로 표현, 이 배열이 곧 문자열 변수가 됨 💥 문자형 배열이기 때문에 기본 타입에 포함되지 않음 = 연산자 사용 불가능 HTML 삽입 미리보기할 수 없는 소스 char str01[] = "This is a string."; // 크기를 지정하지 않은 문자열 변수 선언 char str02[7] = "string"; // 크기를 지정한 문자열 변수 선언 printf("이것은 문자열 ..

[문자와 문자열] 입출력 함수 총정리 1 : 스트림과 문자

A. 기본적인 입출력 1. 스트림 (stream) a. 스트림이란? 🌟 실제의 입력이나 출력이 표현된 데이터의 이상화된 흐름 = 운영체제에 의해 생성되는 가상의 연결 고리 C언어는 파일이나 콘솔의 입출력을 직접 다루지 않고, 스트림을 통해 다룸 b. 스트림 생성 방식 콘솔 장치 : 프로그램 실행 시 자동 실행, 자동 소멸 파일 연결 스트림 : 직접 생성 c. 표준 스트림 (standard stream) 표준 스트림 설명 stdin 표준 입력 스트림 stdout 표준 출력 스트림 stderr 표준 오류 스트림 d. EOF(End Of File) 🌟 파일 끝에 도달했을 때 반환되는 값, -1 ✔ 운영체제마다 다르지만 C언어에서는 운영체제 상관없이 -1을 반환함 💙 파일뿐만 아니라 키보드를 통한 입력시에도 입..

[메모리의 관리] 메모리의 기초 총정리

A. 메모리의 기초 프로그램이 실행 되기 위해서 먼저 프로그램이 메모리에 로드 되어야 함 또한 프로그램 속 변수를 저장할 메모리도 필요함 따라서 운영체제는 프로그램 실행을 위해 아래와 같은 메모리 공간을 제공 1. 메모리의 구조 a. 코드 영역 🌟 실행할 프로그램의 코드가 저장되는 영역 (텍스트 영역) CPU는 코드 영역에 저장된 명령어를 하나씩 가져가서 처리 b. 데이터 영역 🌟 프로그램의 전역 변수와 정적(static) 변수가 저장되는 영역 프로그램 시작 = 할당 / 프로그램 종료 = 소멸 c. 힙 영역 🌟 프로그래머가 할당( = 동적 할당) / 해제 (자바에서는 가비지 컬렉터가 자동 해제) 하는 메모리 공간 클래스, 클로저가 이 부분에 해당, 런타임 시에 크기가 결정 낮은 주소에서 높은 주소의 방향..