Chapter 04. 데이터의 표현과 연산(Ⅱ).

Slides:



Advertisements
Similar presentations
03 변수와 자료형 세종대학교 최옥경 교수 참고 : 한빛미디어 뇌를 자극하는 C, INFINITY Perfect C.
Advertisements

기본 자료형 순천향대학교 정보기술공학부 이 상 정. 자료형의 선언 컴퓨터프로그래밍 1 순천향대학교 정보기술공학부 이 상 정 3 자료형 선언 기본 자료형문자형 char 정수형 int 실수형 float double 형없음 void.
제6장 조건문.
프로그래밍1 및 실습 (C언어) - 3장 기본자료형 (3.6부터 끝까지) -
데이터의 표현과 연산 (1) (Chapter 3)
제 3 장 변수와 자료형.
C 언어 기초 2 위덕대학교 에너지전기공학부 이 수 형 2009년 2학기.
쉽게 풀어쓴 C언어 Express 제11장 포인터 C Express.
어서와 Java는 처음이지! 제2장 자바 프로그래밍 기초.
2014 ITA 8월 강의 C Programming -1주차- C언어 기초 정대진 ( )
C 개론 정리.
4부 클래스 라이브러리 “4부에서는 자바 언어의 API인 클래스 라이브러리에 관해 설명합니다
2강. JAVA 프로그래밍이란?-II & 변수 JAVA 프로그램 환경설정과 실행 방법 변수란?
제3장 추가 실습 3장 관련 C 언어 프로그래밍 실습.
4장: 자료형과 수식.
쉽게 풀어쓴 C언어 Express 제4장 변수와 자료형 C Express.
컴퓨터의 기초 제 4강 - 표준 입출력, 함수의 기초 2006년 4월 10일.
6장. printf와 scanf 함수에 대한 고찰
누구나 즐기는 C언어 콘서트 제4장 수식과 연산자.
제 18 강 데이터 타입 타입, 변환, 캐스팅 shcho.pe.kr.
연산자 대입 연산자 산술 연산자 관계 연산자 논리 연산자 비트 연산자 콤마 연산자 축약 연산자 sizeof 연산자
변수와 자료형.
C 9장. 구조체 #include <stdio.h> int main(void) { int num;
기초C언어 제3주 C프로그램 구성요소, 변수와 자료형 컴퓨터시뮬레이션학과 2016년 봄학기 담당교수 : 이형원
컴퓨터 프로그래밍 기초 - 2nd : scanf(), printf() 와 연산자 -
쉽게 풀어쓴 C언어 Express 제3장 C프로그램 구성요소 C Express.
Chapter 4 – 연 산 자 Outline 4.1 산술 연산자 4.2 관계 연산자 4.3 동등 연산자 4.4 논리 연산자
표준 출력 함수 printf 출력 데이터 서식화(formatting) 표준 입력 함수 scanf 입력 데이터 서식화
변수와 자료형.
Chapter 10. 포인터.
제 2 장 변수와 상수.
제 3 장 상수와 변수
임베디드 시스템을 위한 C프로그래밍 기법 3.7 ~ 4.5 장 Raphael.
쉽게 풀어쓴 C언어 Express 제4장 변수와 자료형 C Express.
4주차: Data Types and Functions
5장. 상수와 기본 자료형. 5장. 상수와 기본 자료형 5-1 C 언어가 제공하는 기본 자료형 자료형(data type) 기본 자료형 사용자 정의 자료형 int val; "선언할 변수의 특징을 나타내기 위한 키워드" 기본 자료형 기본적으로 제공이 되는 자료형 사용자.
쉽게 풀어쓴 C언어 Express 제4장 변수와 자료형 C Express.
C 4장. 연산자 #include <stdio.h> int main(void) { int num;
Arrays 요약.
2장 표준 입출력 표준 입출력 함수의 종류 형식화된 입출력 문자 입출력 문자열 입출력.
Chapter 2 Lexical Elements, Operators, and the C System
Chapter 10 함수 기본.
Chapter 4 수식과 연산자.
제2장 데이터형과 표준 입출력문 문봉근.
컴퓨터의 기초 제 2강 - 변수와 자료형 , 연산자 2006년 3월 27일.
윤성우의 열혈 C 프로그래밍 윤성우 저 열혈강의 C 프로그래밍 개정판 Chapter 11. 1차원 배열.
Formatted Input/Output
제 3 장 연산자 (Operators).
Java의 정석 제 2 장 변수(Variable) Java 정석 남궁성 강의
컴퓨터 프로그래밍 기초 - 4th : 수식과 연산자 -
윤성우의 열혈 C 프로그래밍 윤성우 저 열혈강의 C 프로그래밍 개정판 Chapter 05. 상수와 기본 자료형.
Chapter 04 자료 유형.
3장. 변수와 연산자. 3장. 변수와 연산자 3-1 연산자, 덧셈 연산자 연산자란 무엇인가? 연산을 요구할 때 사용되는 기호 ex : +, -, *, / 3-1 연산자, 덧셈 연산자 연산자란 무엇인가? 연산을 요구할 때 사용되는 기호 ex : +, -, *, /
컴퓨터 프로그램 제2,3장 간단한 C 프로그램 김 문 기.
Chapter 11. 배열과 포인터.
Chapter 05. 입출력 함수.
Byte Alignment ㈜ 웰컴정보시스템 김 정 은.
실습과제 1(조건문, ) 표준입력으로 수축기 혈압을 입력 받아 그에 따른 적당한 표현을 화면에 출력하는 프로그램을 if-else 문을 이용하여 작성.
제 3장 데이터형과 연산자 Hello!! C 언어 강성호 김학배 최우영.
학습목표 Chapter 2-1. 변수와 포인터 변수의 선언과 변수에 대한 메모리 할당을 살펴본다.
-Part1- 제6장 자료형이란 무엇인가.
자바 5.0 프로그래밍.
쉽게 풀어쓴 C언어 Express 제6장 조건문 C Express Slide 1 (of 28)
C언어 프로그래밍의 이해 Ch03. 기본 자료형, 변수와 상수.
3주차: Control Flow and Others
박성진 컴퓨터 프로그래밍 기초 [03] 변수와 자료형 박성진
C 4장. 연산자 #include <stdio.h> int main(void) { int num;
개정판 누구나 즐기는 C언어 콘서트 제3장 변수와 자료형 출처: pixabay.
Chapter 09. 배열.
Presentation transcript:

chapter 04. 데이터의 표현과 연산(Ⅱ)

진법은 값을 표현할 때 단위기호를 몇 개 사용하느냐이다. 10진법, 8진법, 2진법, 16진법의 표현 진법 변환 진법은 값을 표현할 때 단위기호를 몇 개 사용하느냐이다. 10진법, 8진법, 2진법, 16진법의 표현 - 10진법 : 숫자 0~9까지 10개 - 8진법 : 숫자 0~7까지 8개 - 2진법 : 숫자 0과 1 - 16진법 : 숫자 0~9, a, b, c, d, e, f

▶ 다른 진법의 수를 10진수로 각 자릿수에 2, 8, 16의 거듭제곱을 차례로 곱해서 모두 더한다. 2진수 1010을 10진수로 바꾸는 예 16진수 4b를 10진수로 바꾸는 예

▶ 2진수를 8진수와 16진수로 2진수 3자리는 8진수 1자리로, 4자리는 16진수 1자리로 바꾼다.

▶ 10진수를 다른 진법으로 10진수를 각 진법의 수로 나누면서 나머지를 차례로 적어준다. 10진수 13과 59를 2진수와 8진수로 바꾸는 예 큰 수는 8진수를 먼저 구하고 2진수와 16진수로 바꾸면 편하다.

정수형 상수를 다른 진법으로 표현하는 방법 정수를 다른 진법으로 입출력하는 방법 여러 가지 정수형 자료형 정수의 다양한 표현법과 자료형 정수형 상수를 다른 진법으로 표현하는 방법 정수를 다른 진법으로 입출력하는 방법 여러 가지 정수형 자료형

정수형 상수는 10진법, 8진법, 16진법으로 표현할 수 있다. ▶ 정수형 상수를 다른 진법으로 표현 정수형 상수는 10진법, 8진법, 16진법으로 표현할 수 있다. 8진수와 16진수로 표현할 때는 10진수와의 구별을 위해서 각각 접두어 0과 0x를 붙인다. 표현법만 다를 뿐 같은 값이다. 10진수 상수 12 : 12 8진수 상수 014 : 12 16진수 상수 0xc : 12 printf(“10진수 상수 12 : %d\n”, 12); printf(“8진수 상수 014 : %d\n”, 014); printf(“16진수 상수 0xc : %d\n”, 0xc);

정수를 각 진법에 맞게 입출력 할 때는 적절한 변환문자열을 사용한다. ▶ 정수를 다른 진법으로 출력 정수를 각 진법에 맞게 입출력 할 때는 적절한 변환문자열을 사용한다. 출력 형태 10진수 8진수 16진수 변환문자열 %d %o %x 의미 Decimal Octal heXa-decimal 같은 값 12를 각 진법으로 출력하는 예 printf(“10진수 12를 10진수로 출력 : %d\n”, 12); printf(“10진수 12를 8진수로 출력 : %o\n”, 12); printf(“10진수 12를 16진수로 출력 : %x\n”, 12); 10진수 12를 10진수로 출력 : 12 10진수 12를 8진수로 출력 : 14 10진수 12를 16진수로 출력 : c

변환문자열에 ‘#’플래그(flag)를 사용하면 접두어를 붙여서 출력한다. ▶ 진법에 맞게 접두어 붙여서 출력 변환문자열에 ‘#’플래그(flag)를 사용하면 접두어를 붙여서 출력한다. printf(“10진수 12를 8진수로 출력 : %#o\n”, 12); printf(“10진수 12를 16진수로 출력 : %#x\n”, 12); 10진수 12를 8진수로 출력 : 014 10진수 12를 16진수로 출력 : 0xc

키보드입력 14를 각 진법으로 입력 받을 때 실제 입력되는 값 ▶ 정수를 다른 진법으로 입력 키보드입력 14를 각 진법으로 입력 받을 때 실제 입력되는 값 int val; printf(“정수값을 입력하세요 : ”); scanf(“%o”, &val); // 키보드로 입력되는 값을 8진수로 해석한다. printf(“입력된 값을 10진수로 출력하면 %d입니다.\n”, val); 정수값을 입력하세요 : 14 (엔터) 입력된 값을 10진수로 출력하면 12입니다.

정수형 자료형에는 int형 외에도 여러 가지가 있으며, 크기는 컴파일러에 따라 차이가 있다. ▶ 여러 가지 정수형 자료형 정수형 자료형에는 int형 외에도 여러 가지가 있으며, 크기는 컴파일러에 따라 차이가 있다. (단위 : 바이트) 컴파일러 운영체제 환경 char short int long TC++3.0 도스 1 2 4 VC++6.0 윈도즈 gcc 유닉스 특별한 경우가 아니면 정수형 자료형으로 int형을 사용한다. - int형은 현재의 시스템에서 가장 빠르게 처리될 수 있도록 구현 되므로 int형을 사용하는 것이 가장 좋다.

정수값이 저장되는 방법 정수값의 비트 표현 정수형 변수에 저장되는 값의 범위 양수값만을 저장하는 정수형 변수

▶ 정수값의 비트표현 정수값은 2진수로 저장된다. 2진수 비트열에서 가장 왼쪽의 비트는 MSB(Most Significant Bit, 가장 오른쪽의 비트는 LSB(Least Significant Bit)가 된다.

자료형의 비트수에 따라 저장되는 값의 범위는 다음과 같다. ▶ 정수형 변수에 저장되는 값의 범위 자료형의 비트수에 따라 저장되는 값의 범위는 다음과 같다. 각 정수형 자료형에 저장할 수 있는 값의 범위 (VC++6.0 기준) 자료형 크기 계산식 저장 값의 범위 char 1바이트(8비트) 28 - 1 0 ~ 255 short 2바이트(16비트) 216 - 1 0 ~ 65535 int, long 4바이트(32비트) 232 - 1 0 ~ 4294967295

양수값 전용으로 사용할 때는 unsigned예약어를 사용한다. ▶ 정수형 변수를 양수값 전용으로 사용하자. 양수값 전용으로 사용할 때는 unsigned예약어를 사용한다. unsigned 변수로 입출력할 때는 %u변환문자열을 사용한다. unsigned char uch; // uch는 unsigned형으로 선언 printf(“unsigned char형에 최대값을 입력하세요 : ”); scanf(“%u”, &uch); // %u변환문자열을 사용하여 입력한다. printf(“unsigned char형에 저장된 값은 : %u\n”, uch); // %u로 출력 unsigned char형에 최대값을 입력하세요 : : 255 (엔터) unsigned char형에 저장된 값은 : 255

▶ 정수값은 모듈러(modular) 연산에 의해 저장된다. 자료형의 최대값을 넘는 값을 입력하면 범위를 넘어선 나머지 값만 저장된다. unsigned char형에 최대값을 입력하세요 : : 257 (엔터) unsigned char형에 저장된 값은 : 1

음수까지 포함한 정수형 음수값은 2의 보수로 저장한다. 음수값을 포함한 저장 범위

▶ 음수값은 2의 보수로 저장한다. 4비트 크기의 자료형에서 양수와 음수로 사용되는 비트표현

음수값을 2의 보수로 표현하는 것이 연산속도가 빠르다. ▶ 음수값은 2의 보수로 저장한다. 이진수 1011의 값은 얼마인가? - 가장 왼쪽의 비트가 1이므로 음수값을 표현하는 비트열이다. - 2의 보수로 바꾸면 음수값의 크기를 알 수 있다. - 그 값에 마이너스(-)를 붙이면 저장된 음수값이다. 음수값을 2의 보수로 표현하는 것이 연산속도가 빠르다.

자료형의 비트수에 따라 저장되는 값의 범위는 다음과 같다. ▶ 음수값을 포함한 저장 범위 자료형의 비트수에 따라 저장되는 값의 범위는 다음과 같다. 소 각 정수형 자료형에 저장할 수 있는 값의 범위(음수값 포함) (VC++6.0 기준) 자료형 크기 계산식 저장 값의 범위 char 1바이트(8비트) -27 ~ 27-1 -128 ~ 127 short 2바이트(16비트) -215 ~ 215-1 -32768 ~32767 int, long 4바이트(32비트) -231 ~ 231-1 -2147483648 ~ 2147483647 정수형 자료형은 기본적으로 signed로 선언된다.

▶ signed 자료형에서 modular연산 양의 최대값 다음의 수는 음의 최대값이 된다. char ch; // 기본적으로 signed형으로 선언된다. printf(“char형에 최대값을 입력하세요 : ”); scanf(“%d”, &ch); // %d변환문자열을 사용하여 입력한다. printf(“char형에 저장된 값은 : %d\n”, ch); // %d로 출력 char형에 최대값을 입력하세요 : 128 (엔터) char형에 저장된 값은 : -128 // 음수값이 출력된다!!

실수형 상수의 표현법 지수 형태의 입출력 여러 가지 실수형 자료형 실수값의 비트표현과 저장범위, 유효숫자 실수값의 표현과 자료형 실수형 상수의 표현법 지수 형태의 입출력 여러 가지 실수형 자료형 실수값의 비트표현과 저장범위, 유효숫자

아주 크거나 아주 작은 실수값은 지수형태로 표현한다. ▶ 실수형 상수의 지수 표현법 아주 크거나 아주 작은 실수값은 지수형태로 표현한다. 지수형태로 표현된 실수형 상수의 예 0.5e01 -2.002e3 14142e-4 0.0625E+02 +.5e-9 소수점 이하 출력 자리수를 조절하는 방법 0.5e01 -> 5 +.5e-9 -> 0.0000000005 printf(“0.5e01 -> %.0lf\n”, 0.5e01); printf(“+.5e-9 -> %.10lf\n”, +.5e-9);

실수값을 지수 형태로 입출력할 때는 %le변환문자열을 사용한다. ▶ 지수형태의 입출력 방법 실수값을 지수 형태로 입출력할 때는 %le변환문자열을 사용한다. printf(“소수점형 상수 10002.0을 지수 형태로 출력 : %le\n”, 10002.0); printf(“지수형 상수 0.00625e3을 지수 형태로 출력 : %le\n”, 0.00625e3); 소수점형 상수 10002.0을 지수 형태로 출력 : 1.000200e+004 지수형 상수 0.00625e3을 지수 형태로 출력 : 6.250000e+000 지수형태로 입력 받아서 소수점 형태로 출력하는 예 double db; printf(“실수값을 지수 형태로 입력하세요 : ”); scanf(“%le”, &db); printf(“입력된 값을 소수점 형태로 출력하면 : %lf\n”, db); 실수값을 지수 형태로 입력하세요 : 314e-2 (엔터) 입력된 값을 소수점 형태로 출력하면 : 3.140000

실수형 자료형에는 double형 외에도 여러 가지가 있으며, 크기는 컴파일러에 따라 차이가 있다. ▶ 여러 가지 실수형 자료형 실수형 자료형에는 double형 외에도 여러 가지가 있으며, 크기는 컴파일러에 따라 차이가 있다. (단위 : 바이트) 컴파일러 운영체제 환경 float double long double TC++3.0 도스 4 8 10 VC++6.0 윈도즈 gcc 유닉스 16 특별한 경우가 아니면 실수형 자료형으로 double형을 사용한다. - float형은 오차가 발생할 가능성이 많으므로 적당한 크기와 정밀도를 가지는 double형을 주로 사용하는 것이 좋다.

double형 변수(8바이트)에 실수값을 저장하는 예 ▶ 실수값의 비트 표현 실수값은 IEEE754표준에 따라 저장된다. - 한정된 크기의 기억공간에 최대한 효율적으로 실수값을 저장하기 위해서는 특별한 약속에 따라 저장한다. double형 변수(8바이트)에 실수값을 저장하는 예 - 가장 왼쪽의 비트는 부호비트이며 양수는 0, 음수는 1을 저장한다. - 부호비트 다음부터 11비트는 지수값을 저장한다. - 나머지 52비트에 소수값을 저장한다. 실수형 자료형은 signed와 unsigned를 사용하지 않는다. - 실수형 자료형은 항상 signed형태로 사용되는 것이다.

double형 변수의 저장값의 범위는 대략 다음과 같다. ▶ 저장 범위와 유효숫자 double형 변수의 저장값의 범위는 대략 다음과 같다. - 최대값은 지수 부분과 소수 부분이 모두 가장 큰 값을 가질 때이며 최소값은 부호가 반대인 경우이다. double형 값의 유효숫자는 15자리이다. - 실수값은 값의 크기와는 별도로 정확한 값을 표현하는 데에는 한계가 있다. double exact; exact = 0.1234567890123456789; // 유효숫자가 많아서 정밀한 값 printf(“유효숫자가 많은 값 : %.20lf\n”, exact); 유효숫자가 많은 값 : 0.12345678901234568000 // 뒷부분에 오차가 생김

문자상수는 아스키코드값에 해당하는 정수형 상수와 같다. 문자 데이터의 저장 문자 데이터는 아스키코드값으로 저장된다. - 아스키코드(ASCII code)값은 컴퓨터에서 사용되는 각 문자들을 어떤 비트열로 표현할 것인지에 대한 약속이다. - 128개의 문자에 대해 각각 1바이트(8비트)의 비트열로 표현하도록 약속한다. - 아스키코드값의 몇 가지 예(괄호는 각각 16진수와 10진수) 문자상수는 아스키코드값에 해당하는 정수형 상수와 같다. - 문자상수를 연산하여 대문자를 소문자로 바꾸는 예

자료형의 크기를 확인할 때는 sizeof연산자를 사용한다. 자료형의 크기 확인 자료형의 크기를 확인할 때는 sizeof연산자를 사용한다. - sizeof연산자는 피연산자의 데이터 크기를 바이트 단위로 계산해준다. 다양한 데이터의 크기를 확인하는데 사용할 수 있다. printf(“%d바이트\n”, sizeof(‘V’)); printf(“%d바이트\n”, sizeof(35)); printf(“%d바이트\n”, sizeof(1.65)); printf(“%d바이트\n”, sizeof(1.65f)); printf(“%d바이트\n”, sizeof(“abc”)); printf(“%d바이트\n”, sizeof(“K”)); printf(“%d바이트\n”, sizeof(10/4)); printf(“%d바이트\n”, sizeof(10/4.0)); 1바이트 // 문자 상수의 크기 4바이트 // 정수형 상수의 크기 8바이트 // 실수형 상수의 크기 4바이트 // 실수형 상수의 크기 4바이트 // 문자열 상수의 크기 2바이트 // 문자열 상수의 크기 4바이트 // 수식의 결과값의 크기 8바이트 // 수식의 결과값의 크기