본문 바로가기

Basic/C & Java

C 언어란? #2 - 변수와 자료형

반응형

 

변수

 

프로그래밍에 있어서 변수라는 건 숫자, 문자와 같은 값들을 저장하는 공간을 의미한다. 모든 프로그램들은 수 많은 변수들로 구성되어 있다.


 

 

자료형(Data Type)

자료형이란 변수의 종류를 의미한다. 변수에 값을 담기 전에, 정수, 실수, 문자, 문자열 등은 어떤 값을 지닐 수 있는지 자료형을 미리 정해주어야 한다. C의 기본자료형 종류는 다음과 같다.

 

비트(bit)는 컴퓨터가 처리할 수 있는 데이터의 최소 단위로 0,1의 값을 가진다. 하나의 비트는 0,1밖에 표현할 수 없으므로, 값을 표현하기위해 비트 8개가 모인것이 바이트(byte)이다. 왜 하필 8개인지는 국제표준인듯하다. 0,1의 이진법으로 27각각 128개의 양수(0~127)와 128개의 음수(-1~128)까지 표현할수 있다. 마찬가지로 비트 16개가 모인 2byte에서는 215로 양수(0~32,767) 음수(-1~32,768)까지 표현할 수 있다.

 

자료형 명칭 크기 (byte) 값의 범위
정수형 char 1byte -128이상 +127이하
short 2byte -32,768이상 +32,767이하
int 4byte -2,147,483,648이상
+2,147,483,647이하
long 4byte -2,147,483,648이상
+2,147,483,647이하
long long 8byte -9,223,372,036,854,775,808이상
+9,223,372,036,854,775,807이하
실수형 float 4byte ±3.4x10^-37 ~ ±3.4x10^38
double 8byte ±1.7x10^-307 ~ ±3.4x10^308
long double 8byte 이상 double이상의 표현범위

 

정수형에서 char 정수와 문자를 표시할때 사용된다.

short, int, long, long long은 정수(숫자)를 나타낼때 사용된다.

 

구분 명칭 설명 출력 예(signed short)
부호가 있는 변수 signed 기본(default) 형식 -32,768 ~ 32,767
부호가 없는 변수 unsigned 음수를 표현 할 수 없고, 양수 값의 표현범위가 두배 정도 늘어남 0 ~ 65,535

 

정수형의 경우 signed,unsigned로 나뉘는데 signed(부호있는 변수)의 경우, 음수와 양수 둘다 표현이 가능하고

unsigned(부호 없는 변수)의 경우 양수만을 표현할 수 있는 대신에 범위가 약 2배 늘어난다.

 

실수형은 float , double, long double 순으로 좀 더 큰 숫자, 많은 소수점을 나타 낼 수 있다. 정수형과 다르게 unsigned가 존재 하지 않는다.

 


 

정수형 변수 출력

 

Hello world!를 출력할때는

printf("Hello world!"); 와 같이 ""안에 내용을 적으면 된다. 하지만 계속 내용이 바뀌는 변수를 출력할때는 형식 지정자를 이용해야 한다.

가장 많이 쓰이는것과 내가 궁금했던거 몇가지를 추가했다.

 

 

C언어 형식 지정자(C language format specifier)

자료형 형식지정자 설명 예시 영어 : 뜻
int %d 부호 있는 10진 정수 5 decimal : 10진수
unsigned int %u 부호 없는 10진 정수 5
float,double %f 부호 있는 10진 실수 5.52
char %c 단일문자 및
부호 있는 10진정수
c
unsigned char %hhu 부호 없는 10진 정수 5
char[]
(char배열)
%s 문자열 computer
int %o

octal : 8진수
int %x

hexadecimal : 16진수
  •  

컴퓨터 언어에는 영어가 정말 많이 들어간다.

알수 없는 기호로 사람과 컴퓨터간의 약속을 정해놓았지만 알고보면 영어가 베이스이다.

*integer : 정수

*octal : 8진수

*decimal : 10진수

*hexadecimal : 16진수


 

C언어에서 'a의 값은 50입니다'라는 문구를 출력하기 위한 예제는 다음과 같다.

#include<stdio.h>

int main()

{

int a;

a = 50;

printf("a의 값은 %d 입니다." , a);

return 0;

}

출처 입력


이스케이프 시퀀스

이스케이프 시퀀스는 \(원화 혹은 역슬래시형 기호)와 특정 문자를 결합하여 c언어 특성상 표현할 수 없는 기능이나 문자를 표시해주는 문자를 말한다.

\n을 입력함으로써 줄바꿈을 실행할 수 있다.

\t를 입력함으로써 tab키를 한번 누른 효과를 볼 수 있다.

 


번외 - Java에서의 자료형

자료형 명칭 byte 값(예)


정수형
short

int 4byte 0,3,5,,.21억
long 8byte 10.0, 5.8, 0.0
실수형 float 4byte
double 8byte
논리형 boolean 1byte true, false
문자형 char 2byte 'a','b','c'
문자열 string
"abc", "한글"

 

*중요 : java에서 문자형은 c에서와 달리 2byte를 차지한다.

자바에서는 정수형으로 int를 기본형, 실수형으로 double을 기본형으로 사용한다.

나머지는 복잡하니 그다지 중요하지 않는듯하다.

*boolean : 참/거짓

 


운영체제는 32비트/64비트 운영체제가 존재한다.

간단히 말해, 32비트 운영체제는 2^32데이터를 한번에 처리할 수 있는 능력을 가진 운영체제이고, 2^64데이터를 한번에 처리할 수 있는 운영체제이다.

 

반응형

'Basic > C & Java' 카테고리의 다른 글

C 언어란? #1  (0) 2021.10.19