Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 자바의 정석 기초편 ch13
- 게시글 목록 api
- 2024 정보처리기사 수제비 실기
- 코드로 시작하는 자바 첫걸음
- 자바의 정석 기초편 ch14
- 2024 정보처리기사 시나공 필기
- 스프링 mvc1 - 서블릿
- 스프링 mvc1 - 스프링 mvc
- 자바의 정석 기초편 ch1
- @Aspect
- 스프링 db2 - 데이터 접근 기술
- 자바의 정석 기초편 ch2
- 타임리프 - 기본기능
- 스프링 고급 - 스프링 aop
- 자바의 정석 기초편 ch11
- 스프링 mvc2 - 타임리프
- 스프링 db1 - 스프링과 문제 해결
- 자바의 정석 기초편 ch3
- 스프링 mvc2 - 검증
- 자바의 정석 기초편 ch12
- 자바의 정석 기초편 ch7
- jpa 활용2 - api 개발 고급
- 자바의 정석 기초편 ch6
- 자바의 정석 기초편 ch4
- 스프링 mvc2 - 로그인 처리
- 자바의 정석 기초편 ch9
- 자바의 정석 기초편 ch8
- 스프링 입문(무료)
- jpa - 객체지향 쿼리 언어
- 자바의 정석 기초편 ch5
Archives
- Today
- Total
나구리의 개발공부기록
2장 - 프로그래밍 언어 활용 | 섹션4. 데이터 타입, 섹션5. 변수, 섹션6. 연산자 본문
2024정보처리기사 준비 정리(필기 - 시나공, 실기 - 수제비)/필기 4강 - 프로그래밍 언어 활용
2장 - 프로그래밍 언어 활용 | 섹션4. 데이터 타입, 섹션5. 변수, 섹션6. 연산자
소소한나구리 2024. 5. 9. 15:422024년도 시나공 필기 책 내용 정리
섹션4. 데이터 타입
1. 데이터 타입
- 변수(Variable, 컴퓨터가 명령을 처리하는 도중 발생하는 값을 저장하기 위한 공간, 변할 수 있는 값)에 저장될 데이터의 형식을 나타내는 것
유형 | 기능 | 예 |
정수 타입(Integer Type) | 정수(소수점이 없는 숫자)를 저장할 때 사용 | 1, -1, 10, -100 |
부동 소수점 타입 (Float Point Type) | 소수점 이하가 있는 실수를 저장할 때 사용 | 0.123X10², -1.6X2³ |
문자 타입 (Character Type) | 한 문자를 저장할 때 사용, 작은 따옴표(' ') 안에 표시함 | 'A', 'a', '1', '*' |
문자열 타입 (Character String Type) | 문자열을 저장할 때 사용, 큰 따옴표(" ") 안데 표시 | "Hello!", "1+2=3" |
불린 타입 (Boolean Type) | 조건의 참(True), 거짓(False)여부를 판단하여 저장할 때 사용 기본값은 거짓(False) |
true, false |
배열 타입(Array Type) | 같은 타입의 데이터 집합을 만들어 저장할 때 사용 데이터는 중괄호{ } 안에 콤마, 로 구분하여 값들을 나열함 |
{1,2,3,4,5} |
2. C/C++의 데이터 타입 크기 및 기억 범위
- 컴퓨터나 운영체제에 따라 데이터타입이 조금씩 다름, ex) long은 window에서는 4Byte이지만, Linux(64비트)에서는 8Byte이고 long double은 16바이트임
종류 | 데이터 타입 | 크기 | 기억 범위 |
문자 | char | 1Byte | -128 ~ 127 |
부호없는 문자형 | unsigned char | 1Byte | 0 ~ 255 |
정수 | 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 | |
부호 없는 정수형 | unsiged short | 2Byte | 0 ~ 65,535 |
unsiged int | 4Byte | 0 ~ 4,294,967,295 | |
unsiged long | 4Byte | 0 ~ 4,294,967,295 | |
실수 | float | 4Byte | 1.2 X 10⁻⁴⁵ ~ 3.4 X 10³⁸ |
double | 8Byte | 4.9 X 10⁻³⁰⁸ ~ 1.8 X 10³⁰⁸ | |
long double | 8Byte | 4.9 X 10⁻³⁰⁸ ~ 1.8 X 10³⁰⁸ | |
논리 | bool | 1Byte | true 또는 false |
3. JAVA의 데이터 타입 크기 및 기억 범위
종류 | 데이터 타입 | 크기 | 기억 범위 |
문자 | char | 2Byte | 0 ~ 65,535 |
정수 | byte | 1Byte | -128 ~ 127 |
shot | 2Byte | 0 ~ 65,535 | |
int | 4Byte | -2,147,483,648 ~ 2,147,483,647 | |
long | 8Byte | -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 | |
실수 | float | 4Byte | 1.2 X 10⁻⁴⁵ ~ 3.4 X 10³⁸ |
double | 8Byte | 4.9 X 10⁻³²⁴ ~ 1.8 X 10³⁰⁸ | |
논리 | bool | 1Byte | true 또는 false |
4. Python의 데이터 타입 크기 및 기억 범위
종류 | 데이터 타입 | 크기 | 기억 범위 |
문자 | str | 무제한 | 무제한 |
정수 | int | 무제한 | 무제한 |
실수 | float | 4Byte | 1.2 X 10⁻⁴⁵ ~ 3.4 X 10³⁸ |
complex | 16Byte | 4.9 X 10⁻³²⁴ ~ 1.8 X 10³⁰⁸ | |
논리 | bool | 1Byte | true 또는 false |
*complex : 복소수를 의미, 실수와 허수의 합으로 이루어진 숫자 표현
*무제한 : 프로그램에 배정된 메모리의 한계까지 얼마든지 저장 할 수 있음을 의미
Python 의 시퀀스 자료형
- 리스트(List) : 다양한 자료형의 값을 연속적으로 저장하여 필요에 따라 개수를 늘리거나 줄일 수 있음
- 튜플(Tuple) : 리스트처럼 요소를 연속적으로 저장하지만, 요소의 추가, 삭제, 변경은 불가능함
- range : 연속된 숫자를 생성하는 것으로, 리스트, 반복문 등에서 많이 사용됨
섹션5. 변수
1. 변수의 개요
- 컴퓨터가 명령을 처리하는 도중 발생하는 값을 저장하기 위한 공간으로, 변할 수 있는 값을 의미
- 저장하는 값에 따라 정수형, 실수형, 문자형, 포인터형 등으로 구분함
2. 변수명 작성 규칙
- 영문자, 숫자, _(under bar)를 사용할 수 있음
- 첫 글자는 영문자나 _로 시작해야하며 숫자는 올 수 없음
- 글자 수에 제한이 없음
- 공백이나 *,+,-,/ 등의 특수문자를 사용할 수 없음
- 대/소문자를 구분함
- 예약어를 변수명으로 사용할 수 없음
- 변수 선언 시 문장 끝에 반드시 세미콜론을(;) 붙여야 함
- 변수 선언 시 변수명에 데이터 타입을 명시하는 것을 헝가리안 표기법이라 함, ex) iValue, dbNum, chType 등등
예약어 : 정해진 기능을 수행하도록 이미 용도가 정해져 있는 단어로 변수 이름이나 다른 목적으로 사용할 수 없음
- C언어의 예약어
구분 | 예약어 | |
제어문 | 반복 | do, for, while |
선택 | case, default, else, if, switch | |
분기 | break, continue, goto, return | |
자료형 | char, double, enum, float, int, long, short, signed, struct, typedef, union, unsigned, void | |
기억 클래스 | auto, extern, register, static | |
기타 | const, sizeof, volatile |
변수를 상수로 만들어 사용하기
- 변수는 프로그램을 실행하는 도중 발생한 값을 저장하기 위한 공간으로 변수의 값은 변경될 수 있음
- 하지만 변수에 저장된 값을 프로그램이 종료될 때까지 변경되지 않도록 상수로 만들어 사용할 수 있는데 이런경우 C언어 에서는 const라는 예약어를 사용함
- 변수처럼 상수에 이름을 붙혀 기호화하여 사용한다고 하여 심볼릭(Symbolic) 상수라고도 함
- ex) const float P1 = 3.14;
3. 기억 클래스
- 변수 선언 시 메모리 내에 변수의 값을 저장하기 위한 기억영역이 할당되는데, 할당 되는 기억 영역에 따라 사용 범위에 제한이 있음, 이러한 기억영역을 결정하는 작업을 기억 클래스(Storage Class)라고 함
- C언어의 5가지 종류의 기억 클래스
종류 | 기억영역 | 예약어 | 생존시간 | 사용 범위 |
자동 변수 | 메모리(스택) | auto | 일시적 | 지역적 |
레지스터 변수 | 레지스터 | register | ||
정적 변수(내부) | 메모리(데이터) | static | 영구적 | |
정적 변수(외부) | 전역적 | |||
외부 변수 | extern |
- 자동 변수(Automatic Variable)
- 함수나 코드의 범위를 한정하는 블록 내에서 선언 되는 변수
- 함수나 블록이 실행되는 동안에만 존재하며 이를 벗어나면 자동으로 소멸됨
- 초기화 하지 않으면 쓰레기 값(Garbage Value, 메모리의 데이터를 변경하기 전에 마지막으로 남아 있던 데이)이 저장됨
- 외부 변수(External Variable)
- 현재 파일이나 다른 파일에서 선언된 변수나 함수를 참조하기 위한 변수
- 함수 밖에서 선언
- 함수가 종료된 뒤에도 값이 소멸되지 않음
- 초기화하지 않으면 자동으로 0으로 초기화됨
- 다린 파일에서 선언된 변수를 참조할 경우 초기화 할 수 없음
- 정적 변수(Static Variable)
- 함수나 블록 내에서 선언하는 내부 정적 변수와 함수 외부에서 선언하는 외부 정적 변수가 있음
- 내부 정적 변수는 선언한 함수나 블록 내에서만 사용할 수 있고 외부 정적 변수는 무든 함수에서 사용할 수 있음
- 두 변수 모두 함수나 블록이 종료된 뒤에도 값이 소멸되지 않음
- 초기화는 변수 선언 시 한 번만 할 수 있으며, 초기화를 생략하면 자동으로 0으로 초기화 됨
- 레지스터 변수(Register Variable)
- 메모리가 아닌 CPU 내부의 레지스터에 기억영역을 할당받는 변수
- 자주 사용되는 변수를 레지스터에 저장하여 처리 속도를 높이기 위해 사용
- 함수나 블록이 실행되는 동안에만 존재하며 이를 벗어나면 자동으로 소멸됨
- 레지스터의 사용 개수는 한정되어 있어 데이터를 저장할 레지스터가 없는 경우 자동 변수로 취급되어 메모리에 할당 됨
- CPU에 저장되어 메모리 주소를 가질 수 없기 때문에 변수의 주소를 구하는 주소연산자(&)을 사용할 수 없음
가비지 콜렉터(Garbage Collector)
- 변수를 선언만 하고 사용하지 않으면 이 변수들이 점유한 메모리 공간은 다른 프로그램들이 사용할 수 없게 되는데, 이러한 공간을 강제로 해제하여 다른 프로그램들이 사용할 수 있도록 하는 것을 가비지 콜렉션(Garbage Collection)이라고 하며, 이 기능을 수행하는 모듈을 가비지 콜렉터라고 함
4. 변수의 선언
- 자료형 변수명 = 값;
- 자료형 : 변수에 저장될 자료의 형식을 지정
- 변수명 : 사용자가 원하는 이름을 임의로 지정 단, 변수명 작성 규칙에 맞게 지정
- 값: 변수를 선언하면서 초기화할 값을 지정(값은 지정하지 않아도 됨)
- ex) int a = 5; / 정수형 타입 변수명 a에 5를 초기값으로 저장
섹션6. 연산자
1. 산술 연산자
연산자 | 의미 | 비고 |
+ | 덧셈 | |
- | 뺄셈 | |
* | 곱셈 | |
/ | 나눗셈 | |
% | 나머지 | |
++ | 증가 연산자 | 전치 : 변수 앞에 증감 연산자가 오는 형태로 먼저 변수의 |
-- | 감소 연산자 |
2. 관계 연산자
- 두 수의 관계를 비교하여 참(true), 거짓(false)을 결과로 얻는 연산자,
- 거짓은 0, 참은 1로 사용되지만 0 외의 모든 숫자도 참으로 간주됨
연산자 | 의미 |
== | 같다 |
!= | 같지 않다 |
> | 크다 |
>= | 크거나 같다 |
< | 작다 |
<= | 작거나 같다 |
3. 비트 연산자
- 비트별(0, 1)로 연산하여 결과를 얻는 연산자
연산자 | 의미 | 비고 |
& | and | 모든 비트가 1일 때만 1 |
^ | xor | 모든 비트가 같으면0, 하나라도 다르면1 |
| | or | 모든 비트 중 한 비트라도 1이면 1 |
~ | not | 각 비트의 부정, 0이면 1, 1이면 0 |
<< | 왼쪽 시프트 | 비트를 왼쪽으로 이동 |
>> | 오른쪽 시프트 | 비트를 오른쪽으로 이동 |
*패딩 비트 : Shift에서 자리를 이동한 후 생기는 왼쪽이나 오른쪽 끝의 빈 자리에 채워지는 비트, 양수는 항상 빈자리에 0이 채워지고 음수는 왼쪽으로 이동 시, 오른쪽 빈자리에는 0, 오른쪽으로 이동 시 왼쪽 빈자리에는 1이 채워짐
4. 논리 연산자
- 두 개의 논리 값을 연산하여 참(true) 또는 거짓(false)을 결과로 얻는 연산자, 거짓은 0, 참은 1
연산자 | 의미 | 비고 |
! | not | 부정 |
&& | and | 모두 참이면 참 |
|| | or | 하나라도 참이면 참 |
5. 대입 연산자
연산자 | 예시 | 의미 |
+= | a += 1 | a = a + 1 |
-= | a -= 1 | a = a - 1 |
*= | a *= 1 | a = a * 1 |
/= | a /= 1 | a = a / 1 |
%= | a %= 1 | a = a % 1 |
<<= | a <<= 1 | a = a << 1 |
>>= | a >>= 1 | a = a >> 1 |
6. 조건 연산자(3항 연산자)
- 조건 ? 수식1 : 수식2; 조건의 수식이 참이면 수식1을, 거짓이면 수기2를 실행
- ex) b *= a > b ? a : b;
7. 기타 연산자
연산자 | 의미 |
sizeof | 자료형의 크기를 표시 |
, (콤마) | 콤마로 구분하여 한 줄에 두 개 이상의 수식을 작성하거나 변수를 정의 왼쪽에서 오른쪽으로 순서대로 수행되며 순서 연산자라 부르기도 함 |
(자료형) | 사용자가 자료형을 다른 자료형으로 변환할 때 사용하는 것으로 case(캐스트) 연산자라고 부름 변환할 자료형을 괄호 안에 넣어서 변환할 값이나 변수명 앞에 놓음 ex) a = (int)1.3 + (int)1.4; 뜻 : 1.3과 1.4를 정수형으로 변환하여 + 연산 후 결과를 변수 a에 대입 |
8. 연산자 우선순위
대분류 | 중분류 | 연산자 | 결합규칙 | 우선 순위 |
단항 연산자 | 단항 연산자 | !, ~, ++, --, sized | ← | 높음 ↑ ↓ 낮음 |
이항 연산자 | 산술 연산자 | *, /, % | → | |
+, - | ||||
시프트 연산자 | <<, >> | |||
관계 연산자 | <. <=, >= , > | |||
==, != | ||||
비트 연산자 | & → ^ → | | |||
논리 연산자 | && → || | |||
삼항 연산자 | 조건 연산자 | ?, : | ||
대입 연산자 | 대입 연산자 | =, +=, -=, *=, /=, %=, <<=, >>= 등 | ← | |
순서 연산자 | 순서 연산자 | , | → |
'2024정보처리기사 준비 정리(필기 - 시나공, 실기 - 수제비) > 필기 4강 - 프로그래밍 언어 활용' 카테고리의 다른 글
2장 - 프로그래밍 언어 활용 | 섹션15. 스크립트 언어, 섹션16. 라이브러리, 섹션17. 예외 처리 (0) | 2024.05.10 |
---|---|
2장 - 프로그래밍 언어 활용 | 섹션13. Python의 기초, 섹션14. Python의 활용 (0) | 2024.05.10 |
2장 - 프로그래밍 언어 활용 | 섹션10. 배열과 문자열, 섹션11. 포인터, 섹션12. 구조체 (0) | 2024.05.10 |
2장 - 프로그래밍 언어 활용 | 섹션7. 데이터 입/출력, 섹션8. 제어문, 섹션9. 반복문 (0) | 2024.05.09 |
1장 - 서버 프로그램 구현 핵심 요약 (0) | 2024.05.09 |