C & C++/디딤돌 C언어 38

Part 7. 실수 표현과 메모리 구조

C언어 - 실수 표현과 메모리 구조 19. 실수는 근사치 0.1에서 0.5사이에 몇 개의 실수가 있을까요?\ 여러분이 아는 것처럼 무한 개의 실수가 존재하죠. 따라서 0.1과 0.5 사이의 모든 실수를 유한한 메모리에 표현할 수 없어요. 실제로 컴퓨터에서 실수 표현은 오차 범위 내에서 값을 표현하는 근사치예요. C언어에서는 실수 형식으로 float 형식과 double 형식을 제공해요. float 형식은 4바이트이며 double 형식은 8바이트예요. 그리고 C언어에서 실수 표현은 기본적으로 double 형식으로 취급하며 float 형식을 표현할 때는 뒤에 f를 붙여요. 그렇지만 C언어에서 실수 형식 사이에는 서로 묵시적 형변환을 제공해서 실수 뒤에 f를 붙이지 않아도 가능하답니다. 물론 값 잘림 현상이 발..

Part 6. 정수 형식의 표현 범위와 Overflow 값 잘림 현상

[C언어] Part 6. 정수 형식의 표현 범위와 Overflow 값 잘림 현상 17. 정수 형식의 표현 범위 char 형식과 unsigned char 형식은 정수를 표현할 때도 사용할 수 있다고 했어요. 두 가지 형식 모두 1바이트를 할당하여 256가지의 정수를 표현할 수 있답니다. unsigned char 형식은 부호 없는 정수만 표현하므로 0~0xFF(0~255)까지 표현 가능해요. char 형식은 최상위 비트가 0인 0x00~0x7F(0~127)까지는 부호없는 정수예요. 그리고 최상위 비트가 1인 0x80~0xFF(-128~-1)까지는 부호있는 정수죠. ◈ char 형식과 unsigned char 형식의 표현 범위 확인 #include int main() { char c = 0; unsigned ..

Part 5. 문자 형식과 ASCII 코드

Part 5. 문자 형식과 ASCII 코드 15. ASCII 코드 C언어 - 문자 형식과 ASCII 코드 C언어에서 char 형식은 -128~127까지의 정수를 표현할 수 있는 정수 형식이예요. 형식 이름을 보면 알 수 있듯이 char 형식은 문자를 표현할 때 많이 사용하죠. 미국 표준 기구(ANSI, American National Standards Instutitute)에서는 영문 알파벳과 숫자 문자와 여러 기호를 아스키 코드로 정의했어요. 아스키 코드에는 128개의 문자를 약속하고 있답니다. 최초의 아스키 코드는 하드웨어 사이에서 주고 받는 신호를 약속한 것으로 제어 신호도 포함하고 있어요. char 형식이 8비트(1바이트)죠. 첫번째 비트는 0이고 나머지 비트를 아스키 코드를 이용하여 표현해요. ..

Part 4. 부호 있는 정수 표현 방법

Part 4. 부호 있는 정수 표현 방법 12. 부호 있는 정수 표현 - 부호 비트 필드 C언어 부호있는 정수 표현, 부호 비트 필드, 1진 보수, 2진 보수 메모리에 부호있는 정수를 표현하는 방법은 여러가지 방법이 있어요. 그 중에 대표적인 방법이 부호비트 필드 방식, 1진 보수 방식, 2진 보수 방식이 있죠.(C언어의 정수 형식은 2진 보수 방식을 사용하고 있어요.) 이제 이 세가지 방법을 알아봅시다. 먼저 부호 비트를 이용하는 방법을 알아볼게요. 부호비트 필드 방식에서는 첫 번째 비트를 부호비트로 사용하는 방식이예요. 첫 번째 비트가 1이면 부호있는 정수이고 0이면 부호없는 정수인 것이죠. 그리고 나머지 비트는 크기를 나타내요. 예를 들어 8비트의 메모리에 10010001 값이 들어있다면 첫번째 비..

Part 3. 형식과 메모리 크기, 진수 표현

Part 3. 형식과 메모리 크기, 진수 표현 [디딤돌 C언어] Part 3. 형식과 메모리 크기, 진수 표현 9. 기본 형식(TYPE) 프로그래밍 언어에서는 데이터를 표현하는 문법으로 형식과 변수를 제공해요. 형식은 데이터의 종류와 표현 범위에 따라 메모리 크기와 범위를 약속하고 있어요. 실제 메모리가 필요할 때 형식을 지정하여 변수를 선언하면 약속한 메모리를 할당받아 사용할 수 있어요. C 언에에서 제공하는 형식에는 문자, 정수, 실수를 표현할 때 사용하는 기본 형식이 있어요. 그리고 여러개의 원소를 연속적인 메모리에 할당받아 사용하는 배열과 프로그램의 메모리 주소를 기억하는 포인터도 있죠. 이 외에 개발자가 프로그램에 필요한 형식을 정의하는 문법을 제공합니다. 개발자가 정의하여 사용하는 형식을 사용..

정리하기 (C언어 소개 ~ 첫 번째 프로그램, Part 1, 2)

1. C언어는 Bell 연구소에서 운영체제(O/S)를 만드는 과정에서 사용한 B언어을 발전한 프로그래밍 언어입니다. B언어는 어떠한 운영체제를 만드는 과정에서 사용했나요? 더보기 답: Unix 2. 프로그래밍 언어에서 데이터 종류에 따라 필요한 메모리 사이즈와 표현 방법을 약속하는 것은 무엇입니까? 더보기 답: 형식 3. 콘솔 프로그램의 진입점 함수 이름은 무엇입니까? 더보기 답: main 4. 표준 입출력을 사용하기 위해 포함시켜야 하는 헤더 파일 이름은 무엇입니까? 더보기 답: stdio.h 5. 표준 출력 파일에 포멧에 맞게 출력하는 함수 이름은 무엇입니까? 더보기 답: printf 6. 편집한 소스 파일을 기계어로 번역하는 것을 무엇이라 부릅나요? 더보기 답: 컴파일 7. C언어에서 주석을 표현하..

Part 2. 첫 번째 프로그램 Hello, World!

[디딤돌 C언어] Part 2. 첫 번째 프로그램 Hello, World! 6. 첫 번째 프로그램 만들기 이제 처음으로 간단한 프로그램을 만들어 봐요. 프로그램 언어를 공부할 때는 머리로 이해하는 것도 필요하지만 받드시 개발 도구에서 만들어 보는 것이 필요해요. 책의 내용을 머리로 이해했다고 만족하지 마시고 개발도구로 만들어 보세요. 이번에 만들 프로그램은 콘솔 화면에 “Hello, World”를 출력하는 프로그램이예요. 여러분은 이 과정을 통해 개발 도구에서 C언어로 프로그램을 만드는 과정을 익힐 수 있어요. 그리고 C언어의 문법 요소도 간단히 살펴볼 수 있답니다. 여기에서는 Microsoft Visual Studio 2022 개발 도구를 사용할게요. (2023년 12월 26일 현재 동영상에서는 Vis..

Part1. C언어 소개

C언어 - C언어 소개 [유튜브 동영상 강의] 1. 들어가기에 앞서 아래 동영상 강의는 예전에 만든 동영상 강의입니다. 이 책은 컴퓨터 프로그래머를 꿈꾸는 이들을 위해 만들었어요. 컴퓨터 프로그래머가 하는 작업 중에 가장 기본은 원하는 작업을 컴퓨터가 수행할 수 있게 논리를 전개하는 것이죠. 그리고 컴퓨터가 수행할 수 있는 프로그램을 작성하기 위해 프로그래밍 언어와 개발 도구를 이용하는 것입니다. 많은 이들은 컴퓨터 프로그래밍을 학습하는 것은 책을 보고 머리로 이해하는 것이라 생각하는 것 같아요. 하지만 실제 컴퓨터 프로그래밍을 효과적으로 학습하려면 머리를 이용하는 것 외에도 자신의 논리를 종이에 적고 그림을 그리고 자료를 검색하고 아는 이들에게 물어보는 등의 사용할 수 있는 모든 자원을 활용하는 것이 ..