C언어

08. C언어_형식 변환 문자

만수르코딩방 2024. 5. 15. 16:50

안녕하세요 만수르에요 오늘은 C언어 자료형변환에 대해서 배워보겠습니다.
변수에 들어가는 값을 상수라고 하는데 상수에는 크게 고정길이 상수와 가변길이 상수가 있습니다.
고정 길이 상수란 데이터가 저장되는 자료형의 크기가 정해져있는 상수이며, 가변길이 상수는 문자열 상수와 같이 자료의 집합으로 데이터의 길이가 변할 수 있는 상수를 의미합니다. 

이러한 상수들을 저장하는 데이터 형(자료형)에 대해서도 알아보겠습니다.
변수가 정의된 자료형에 따라 저장될 수 있는 값의 종류와 범위가 결정되게 됩니다. 
정수형 변수에서 짚고 넘어가야할 부분들에 대해서 말씀드리겠습니다.

  • Char 문자형 자료형도 정수형에 포함된다. ch는 1byte의 크기로 저장할 수 있는 값의 범위는 -128~ 128이다. char type은 문자 상수('0', 'A')를 저장하는 용도와 1Byte크기의 정수형을 저장하는 용도로 사용가능하다. 일반적으로 문자상수가 아닌 정수형 상수를 저장하는 용도로 사용할 때는 signed char, unsigned char로 기재한다. 문자상수는 문자에 대한 ASCII code값에 따라 정수형태로 저장된다. (ASCII code 그림 참조)
  • 정수형 변수는 모두 signed형태와 unsigned형태의 자료형을 가질 수 있다. signed char는 -128~127, unsigned char는 0~255로 데이터가 저장되는 기억공간의 형태가 다르다. signed char은 1Byte (8bit)의 기억공간 중 2의 0승 부터 2의 6승까지의 기억공간에는 절대값에 해당하는 10진수를 2진수로 표현한 값을 저장하고, 2의 7승에는 Sign Bit라고 불리는 음수와 양수를 구분해주는 기억공간을 갖는다. unsigned char은 2의 0승부터 2의 7승까지 절대값에 해당하는 10진수를 2진수로 표현한 값을 저장한다. (signed,unsigned 그림 참조)
  • 정수형 변수의 대표 자료형은 int로 연산과 명령어를 처리하는 기억공간인 CPU의 레지스터의 기억공간이 4Byte로 이루어져있다.(CPU, RAM, HDD 그림 참조)
  • 실수형 변수의 대표 자료형은 double로 유효숫자부(가수부)에 저장되는 데이터의 크기에 따른 유효정밀도 오차에 의해 주로 8byte의 double자료형을 사용한다.

출력 명령어를 사용할 때 출력하고자 하는 값의 형태에 따라 형식 변환 문자를 사용합니다. 형식 변환문자는 주어진 자료형의 타입에 따라 주어진 값을 해석하여 출력해주는 역할을 합니다. 대표적인 형식 변환 문자에 대해서 알아보겠습니다.

  • %d : 음수, 0, 양수의 정수 출력 (10진수)
  • %u : 0, 양수의 정수 출력 (10진수 - 주로 주소값을 출력할 때 사용)
  • %c : 출력 대상(문자 상수)을 나타내는 아스키코드를 전달하여 문자상수 출력 
  • %s : 출력 대상(문자열)의 시작 주소를  전달하여 문자열 출력

이때 문자열은 문자형 자료의 집합으로 char형 1차원 배열로 표현됩니다. 문자열 상수는 가변길이 상수이므로 반드시 데이터의 끝위치를 나타내기위해 '\0'문자로 종료되며 "" 이중 인용부호로 묶습니다. 문자열,배열의 이름은 배열의 시작주소를 나타내는 상수를 가리킵니다 (문자열형 그림 참조)

아스키코드 (128개의 문자를 숫자로 표현)
signed, Unsigned integer
RAM, CPU, HDD
문자열을 배열에 저장하기