기술나눔

C 언어 프로그래밍의 핵심에 대한 자세한 설명 1장: 숫자 체계와 변환 및 ASCII 코드

2024-07-11

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

먼저 쓰다

본 칼럼은 C언어 프로그래밍의 기초 및 고급 학습을 위한 칼럼으로, 자기주도 C언어 시험과 대학원 입시 문제를 해결하기 위해 노력하고, 데이터 구조와 알고리즘 설계 학습을 위한 탄탄한 C언어 기초를 다진다.
물론, 이 칼럼은 단계별 소개만큼 자세하지는 않을 것이다. 하지만 우리는 중요하고 어려운 점을 모두 다루려고 노력합니다.

1. 수체계 및 변환

1.1 4가지 숫자 체계의 정의

2진수, 10진수, 8진수, 10진수
먼저, 생활 속에서 가장 많이 사용되는 십진법에 대해 이야기해 보겠습니다. 10마다 1을 입력합니다.

왜 바이너리를 배워야 할까요?

컴퓨터의 최하위 계층은 바이너리이며, 바이너리는 컴퓨터가 이해하기 가장 쉬운 언어입니다.

이진 정의: 0 1 두 개의 인코딩 기호
2개마다 1개가 들어갑니다
예: 10001 1001111 1000201(잘못된 정의) 11111117(잘못된 정의)

8진수는 왜 도입되었나요?

바이너리는 너무 길고, 소수 압축은 너무 번거롭습니다.

8진수 정의: 0 1…7 8개의 인코딩 기호는 8개마다 1개씩 증가합니다.
예: 123451 10678 20740 09341(잘못된 정의)

16진수는 왜 도입되었나요?

8진법 시스템의 업그레이드 버전

16진수 정의:0 1…9 ABCDEF 16번째마다 16가지 종류의 기호
예: 1abc1 0945dej5

생각하기: 실제로 10진수, 8진수, 16진수를 구별하는 것이 불가능할 때도 있습니다. 어떻게 구별하나요?

십진수: 123
8진수 앞에 0 추가: 0123
16진수 앞에 0x 추가: 0x123

1.2 4가지 수 체계의 변환

우선, 숫자 체계 변환을 위한 브리지가 이진수라는 것이 분명합니다. 다른 진수를 다른 진수로 변환하려면 먼저 이진수로 변환한 다음 다른 진수로 변환하여 진수 변환을 완료할 수 있습니다.

1. 십진수를 이진수로 변환
10진수를 2진수로 변환, 핵심 공식: 2로 나누고 나머지를 역순으로 취함

2. 이진수를 십진수로 변환
2진수를 10진수로 변환, 코어 메모리: 중량 합계, 2N거듭제곱, n은 0부터 시작

3. 2진수를 8진수로 변환
핵심 공식: 3명을 하나의 그룹으로 취급하고, 부족할 경우 앞에 0을 추가합니다.

4. 2진수에서 16진수로
핵심 공식: 4개의 숫자가 하나의 그룹으로 간주됩니다. 충분하지 않은 경우 앞에 0을 추가합니다.

생략된 부분: 8회전은 2회전, 16회전은 2회전, 이는 본질적으로 3회전과 4회전의 역과정입니다.

2. 번호 체계 적용

2.1 ASCII 코드

예: A a B b ¥ $ 등. 이러한 기호는 컴퓨터에 ASCII 값으로 저장됩니다.
즉, 고유한 바이너리 인코딩이 있습니다.

ASCII 코드는 미국에서 개발된 표준 코드입니다.
예를 들어 (기억하기 위해):
대문자 A의 ASCII 코드값 : 65 (십진수로 표현함은 물론 컴퓨터에 바이너리로 저장되기 때문에 메모리의 편의를 위해 십진수로 표현함)
대문자 B의 ASCII 코드 값: 66
소문자 a의 ASCII 코드 값: 97
소문자 b의 ASCII 코드 값: 98

대문자와 소문자의 차이가 32라는 것을 찾는 것은 어렵지 않습니다. 이 차이를 기억하세요. 이는 대문자와 소문자를 변환하는 데 사용할 수 있습니다.

2.2 메모리

컴퓨터 메모리 관리에서 16진수는 여전히 매우 중요합니다.

8비트(바이너리 비트) = 1바이트(B)
1024바이트 = 1KB
1K=1024=210
1M=1024*1024=220

2.3 기계코드

기계어는 실제로는 실제 컴퓨터가 이해하는 코드값이다. 특정 공간에 저장된 값은 78(십진수)이라고 할 수 있지만, 기계어는 확실히 78을 이진수로 표현한 것이다.
기계어 코드에는 보완 코드, 원본 코드, 보완 코드의 세 가지 유형이 있습니다.

3. C언어의 구조

C 언어의 구성: 여러 파일
파일: 여러 기능
기능: 함수 헤더 및 함수 꼬리
함수 헤더 및 함수 본문
명령문: 세 가지 유형의 명령문

명령문에는 설명문, 정의문, 실행문이 포함됩니다. 가장 주목해야 할 점은 실행문입니다.

3.1 데이터 구조 및 데이터 유형:

4가지 데이터 유형: 상수 변수 표현 기능
상수: 값이 변하지 않는 양
변수(Variable): 언제든지 그 가치가 변하는 양.
표현식(Expression) : 연산자를 이용하여 데이터를 연결하는 합법적인 표현식
함수 : 특정 함수를 계산량으로 하는 함수 호출

3.2 데이터 및 데이터 유형

데이터 유형: 기본 유형, 생성 유형, 포인터 유형, 널 유형
기본 유형: 정수 유형 int 등
구조 유형: 구조
빈 유형: 무효

식별자(표준):

  1. 예약어(키워드) : 총 32개. 예: int float char if else for
  2. 사전 정의된 식별자: scanf printf include
  3. 사용자 정의 식별자: 변수명, 배열명 등

사용자 정의 식별자: 첫 번째 문자는 문자 또는 밑줄이어야 하며 그 뒤에 문자, 숫자, 밑줄이 와야 합니다.
C 언어는 대소문자를 구분합니다. Int는 사용자가 사용자 정의할 수 없지만 Int는 가능합니다.