달력

1

« 2020/1 »

  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  •  


 

형변환

타입의 데이터가 다른 타입으로 변환하는 형변환, 자료형 변환, 타입 변환이라고 합니다.

타입 변환은 크게 자동 타입 변환과 강제 타입 변환으로 구분됩니다.

 

 

 

자료형 변환의 종류

자동 형변환

컴파일러가 자동 형변환 시킵니다

강제 형변환

프로그래머가 강제 형변환 시킵니다

 

 

 

자동 형변환

·       다른 자료형 산술 연산의 경우에 작은 자료형에서 자료형으로 자동 형변환

 

 

정수 + 실수 또는 실수 + 정수와 같은 산술 연산을 하는 경우 자동 형변환

#include <stdio.h>

int main(void)

{

   int       num1=100;        // 정수

   double num2=3.14;        // 실수

   printf("%lf \n", num1+num2);    // 정수 + 실수

   return 0;

}

 

 

자료형 변환 우선순위 (작은 자료형에서 자료형으로…) 자동 형변환

char < int < long < float < double < long double

 



 

대입 연산자를 기준으로 오른쪽에서 왼쪽으로 자동 형변환

#include <stdio.h>

int main(void)

{

   char     num1=130;

   int       num2=3.14;

   double num3=3;

   printf("%d, %d, %lf \n", num1, num2, num3);

   return 0;

}

 

 

Posted by codedragon codedragon

댓글을 달아 주세요


 

산술 연산자(arithmetic operator)

·       4 연산(+, -, *, /) 나머지 값을 구하는 연산자(%) 지칭합니다.

·       산술 연산자는 모두 개의 피연산자를 가지는 이항 연산자입니다.

·       피연산자들의 결합 방향은 왼쪽에서 오른쪽입니다.

 

 

 


Posted by codedragon codedragon

댓글을 달아 주세요

자동 형변환 (산술연산)

다른 자료형 간 산술 연산의 경우에 작은 자료형에서 큰 자료형으로 자동 형변환

   

   

소스코드

   

#include <stdio.h>

int main(void) {

int num1=100; // 정수

double num2=3.14; // 실수

//작은 자료형에서 자료형으로 자동 형변환

printf("%lf \n", num1+num2); // 정수 + 실수

printf("%lf \n", num1/num2); // 정수 + 실수

//2째자리까지 출력

printf("%.2lf \n", num1+num2); // 정수 + 실수

return 0;

}


   

   

출력결과

   

Posted by codedragon codedragon

댓글을 달아 주세요

 

   

형변환으로 인한 데이터 손실

데이터 손실이 없는 경우

  • int형 (작은 자료형) 에서 double형(큰 자료형)으로 변환되는 경우
  • 정수와 정수를 나누는 경우

데이터 손실이 있는 경우

double형 (큰 자료형) 에서 int형(작은 자료형)으로 변환되는 경우

자동형변환으로 인한 데이터 손실을 최소화 하기 위해 강제 형변환 수행

   

   

강제 형변환

  • 큰 자료형에서 작은 자료형으로 변환시 사용
  • 프로그래머가 강제로 형변환을 해줍니다.
  • 이미 정의된 자료형을 강제적으로 다른 자료형으로 변환하는 것
  • 괄호 연산자 ( )를 사용하여 바꿀 자료형 표시

int num=10

(double)num; //(바꿀 자료형)변수

   

   

Posted by codedragon codedragon

댓글을 달아 주세요

정수형의 언더플로우 & 오버플로우

   

   

강의내용

   

   

   

   

소스코드

#include <stdio.h>

int main(void) {

char num1=-129; // 최소값보다 -1만큼 작은 저장(언더플로우)

char num2=128; // 최대값보다 +1만큼 저장(오버플로우)

printf("%d \n", num1); // 127 출력

printf("%d \n", num2); // -128출력

num1=-130; // 최소값(-128)보다 -2만큼 작은 저장(언더플로우)

num2=129; // 최댜값(127)보다 +2만큼 저장(오버플로우)

printf("%d \n", num1); // 126 출력

printf("%d \n", num2); // -127출력

return 0;

}

   


   

 

출력내용

 

Posted by codedragon codedragon

댓글을 달아 주세요

   

 

정수형의 오버플로우 & 언더플로우

정수형의 오버플로우와 언더플로우는 순환된 값을 출력합니다.

프로그래밍 언어가 자료유형에 대해 엄격한 언어가 아닌 경우 오버플로우가 일어나도 오류가 발생하지 않고, 현재 형이 수용할 수 있는 형태로 바뀌게 됩니다. 간혹, 경고를 발생하여 주는 경우도 있습니다.

 

 

   

오버플로우

자료형에 저장할 수 있는 최대 범위보다 큰 수 저장

   

char c=128;

최대값에서 +1만큼 오버플로우가 발생

   

언더플로우

자료형에 저장할 수 있는 최소 범위보다 작은 수 저장

   

char c=-129

최소값에서 -1만큼 언더플로우가 발생

Posted by codedragon codedragon

댓글을 달아 주세요

   

데이터 형식

데이터 : 스타일시트에서 사용되는 프로퍼티의 값

   

정수와 실수

10진법으로 표기, 양과 음 지정, 단위와 함께 사용시 값 범위 제한

   

길이

글꼴 및 이미지 크기 조절. 상대 단위와 절대 단위로 분류

h1 { margin: 0.5em; } /* em, 요소의 글꼴(font) 높이 */

h1 { margin: 1ex; } /* x-height, 글자 'x'의 높이 */

p { font-size: 12px; } /* pixels, 화면에 상대적으로 */

   

상대 단위 : em(글꼴의 크기), ex(글꼴의 x너비), px(픽셀)

h1 { margin: 0.5in; } /* 인치(inche), 1in = 2.54cm */

h2 { line-height: 3cm; } /* cm, centimeter */

h3 { word-spacing: 4mm; } /* mm, millimeter */

h4 { font-size: 12pt; } /* 포인트(point), 1pt = 1/72 in */

h4 { font-size: 1pc; } /* 피카(pica), 1pc = 12pt */

   

in(인치), cm(센티미터), mm(밀리미터), pt(포인트:1/72인치), pc(피카:12인치)

   

백분율 단위(percentage unit)

선택적 기호( '+'또는'-', 기본값은'+'), 수치(소수점 있거나 없거나), '단위 : '%'

p { line-height: 120%; } /* 요소의 글꼴 크기('font-size')의 120% */

   

색상(color)

키워드(keyword) 또는 RGB 값 사용.

body {color: black; background: white; }

h1 { color: maroon; }

h2 { color: olive; }

em { color: #f00; } /* #rgb */

em { color: #ff0000; } /* #rrggbb */

em { color: rgb(255,0,0); } /* 정수 범위: 0 - 255 */

em { color: rgb(100%, 0%, 0%); } /* 유동(float) 범위: 0.0% - 100.0% */

em { color: rgb(255,0,0); } /* 정수 범위: 0 - 255 */

em { color: rgb(300,0,0); } /* 255로 잘림 */

em { color: rgb(110%, 0%, 0%); } /* 100%로 잘림 */

   

색상 키워드

aqua, black, blue, fuchsia, gray, green, lime, maroon, navy, olive, purple, red,

silver, teal, white, yellow

   

   

'Development > HTML, CSS, XML, ...' 카테고리의 다른 글

CSS 지정방식  (0) 2015.04.01
CSS 주석  (0) 2015.03.10
CSS 데이터 형식  (0) 2015.02.01
HTML 요소를 선택자로 사용시  (0) 2015.01.01
참고 & 출처 HTML5, CSS, XML  (0) 2014.11.25
색상 태그  (0) 2014.11.20
Posted by codedragon codedragon

댓글을 달아 주세요

자료형의 종류

구분

설명

종류

정수형

정수를 표현하는 데이터 타입

char

short

int

long

실수형

소수점이 포함된 값을 표현하는 데이터 타입

float

double

long double

   

   

'Development > C/C++' 카테고리의 다른 글

데이터의 표현 범위를 구하는 공식  (0) 2015.02.03
sizeof() 연산자  (0) 2015.02.02
자료형 종류  (0) 2015.02.01
자료형  (0) 2015.01.31
Ex11-signed & unsigned  (0) 2015.01.30
Ex10-정수형 데이터 표현 최소값(MIN)과 최대값(MAX) 상수  (0) 2015.01.29
Posted by codedragon codedragon

댓글을 달아 주세요

   

   

리터럴 상수 출력

  • 정수형 상수 출력
  • 실수형 상수 출력
  • 문자형 상수 출력
  • 문자열 상수 출력

   

   

소스코드

int main(void)
{
        //
정수형 상수 출력
        printf("%d, %x %o\n", 10, 10, 10 );
        printf("%d, %x %o\n", 17, 17, 17 );

        printf("10
진수 정수형 상수: %d + %d = %d\n",10, 20, 10+20);

        //Ox
상수 -> 16진수
        printf("16
진수 정수형 상수 %x + %x = %x\n",0x10, 0x20, 0x10+0x20);

        //0
상수 -> 8진수
        printf("8
진수 정수형 상수: %o + %o = %o\n",010, 020, 010+020);\



        //
실수형 상수 출력
        printf("\n");
        printf("
실수형 상수: %lf + %lf = %lf\n",3.14, 4.15, 3.14 + 4.15);



        //
문자형 상수 출력
        printf("\n");
        printf("
문자 상수: %c %c %c\n", 'a', 'b', 'c');             // 알파벳
        printf("ASCII 
코드 10진수: %d %d %d \n",'a','b','c');
        printf("ASCII 
코드 16진수: %x %x %x \n",'a','b','c');

        printf("
문자 상수: %c %c %c\n", '!', '@', '#');     // 특수기호
        printf("ASCII 
코드 10진수:  %d %d %d \n",'!','@','#');
        printf("ASCII 
코드 16진수: %x %x %x \n",'!','@','#');



        //
문자열 상수 출력
        //
문자열 상수는 %s 출력
        printf("\n");
        printf("
문자열 상수: %s \n", "C");
        printf("
문자열 상수: %s \n", "10 + 20");
        printf("
문자열 상수: %s \n", "I Love C, I like Programming!!!");

        return 0;
}

 


   

   

출력결과

   

Posted by codedragon codedragon

댓글을 달아 주세요

키보드로 부터 정수 입력

   

   

소스코드

  1. #include <stdio.h>
  2.    
  3. int main(void) {
  4.         int a, b, c;
  5.    
  6.         printf("***********************************\n");
  7.         printf("10진수 정수 1 입력 : ");
  8.         fflush(stdout); //버퍼를 비워주는 구문
  9.         scanf("%d", &a);                //표준함수
  10.         //scanf_s("%d", &a);    //비표준함수(MS사에서 만든 함수), VisualStudio사용시 Warring표시 scanf대신 scanf_s사용하라는 경고이며 무시하면 됩니다.
  11.         printf("10진수 : %d, 16진수 : %x, 8진수 : %o\n", a, a, a);
  12.    
  13.         printf("16진수 정수 1 입력 : ");
  14.         fflush(stdout);
  15.         scanf("%x", &b);
  16.         printf("10진수 : %d, 16진수 : %x, 8진수 : %o\n", b, b, b);
  17.    
  18.         printf("8진수 정수 1 입력 : ");
  19.         fflush(stdout);
  20.         scanf("%o", &c);
  21.         printf("10진수 : %d, 16진수 : %x, 8진수 : %o\n", c, c, c);
  22.    
  23.         return 0;
  24. }

 


   

   

출력결과

   

Posted by codedragon codedragon

댓글을 달아 주세요