Language/C

C언어 기초 (실수형상수/형식지정자/Endian)

Dexter_- 2016. 9. 5. 08:56
728x90
반응형

 

 

 

C언어 Chapter 4.


 

 

실수형 상수

자료형 바이트 크기 범위 유효 숫자
float 4 3.4*10(-38승)~3.4*10(38승) 7자리
doulbe 8 1.7*10(-308승)~1.7*10(308승) 15자리
long double 8~10 3.4*10(-4932승)~1.1*1.1*10(4932승) 19자리

 

 

🔔 예)

// 실수를 화면에 출력하는 프로그램
#include
<stdio.h>
   
int main()
{
    float fNumber;
    fNumber = 45000.67;

    printf("%f \n", fNumber);  // 45000.67 이후의 숫자는 5로 끝나지않아 오류값 출력
    printf("%9.4f \n", fNumber); // 9.4에서9는 전체자릿수 4는 소수점자릿수를 나타냄
    // 컴퓨터의 계산은 반올림된다
    printf("%e \n", fNumber);  // %e는 실수를 지수표시법으로 나타냄
    
    return 0;
}

 

 

결과 :

 

 

주소 저장방식  

🔔 예) 16진수 "ABCDEF12" 숫자를 저장하였을 때.

 

Big Endian(대소비교가 빠른방식 : 대소비교는 앞자리수로함)

주소(4Byte) 1/Start 2 3 4/Big End
저장값(nibble) A B C D E F 1 1

 

Little Endian(계산이 빠른 방식 : 계산은 뒤에서부터 하면 빠르다.)

주소(4Byte) 1/Little End 2 3 4/Start
저장값(nibble) 1 2 E F C D A B

 

  • Cpu 에따라 저장방식이 다르다.
  • 흔히쓰는 Intel Cpu 는 Little Endian 방식을 따른다.

 

 

형식지정자

형식 지정자 자료형
%ld Long int
%hd Short int
%lo 8진수 long int
%lx 16진수 long int
%u Unsigned int
%lu Unsigned long int
%lf Long double
%lx Long int 16진수
%c 문자형, '?' 작은 따옴표

 

🔔 예) %u 활용법

#include <stdio.h>
   
int main()
{
    unsigned int iNumber;
    iNumber = 0x80000000;  // 0x 를 이용하여 16진수 로 출력
    printf("%d\n", iNumber); // %d 를 사용할경우 unsigned 로 출력되지않는다
    printf("%u\n", iNumber); // %u 를 이용하여 unsigned 로 출력
    
    return 0;
}

 

결과 :

 

🔔 예) 문자형 %c 활용법

#include <stdio.h>
   
int main()
{
    printf("%d\n", 75);
    printf("%d\n", 'K'); // %d 는 'K'를 아스코드값출력
    printf("%c\n", 75);  // %c 는 75를 아스키코드값을 문자K로 출력
    printf("%c\n", 'K'); // %c 는 'K'를 K로 출력
    
    return 0;
}

 

결과 :

 

🔔 예) 문자형 char 활용법

#include <stdio.h>
   
int main()
{
    char ch = 'a'; // char로 정수가아닌 문자를 초기화 하려면 '?' 붙여야한다
    printf("%c\n", ch); // %c 형식지정자로 문자로 출력
    printf("%d\n", ch); // %d 형식지자를 사용하면 아스키 코드값이출력
    
    return 0;
}

 

결과 :

 

🔔 예) 아스키코드 재현 프로그램

#include <stdio.h>
   
int main()
{
    char ch;
   
    printf("Please enter any character: ");
    scanf("%c", &ch);
    printf("The ASCII code for character %1c is %3d.\n", ch, ch);
    // c% 를 이용하여 아스키코드 문자 출력 %d 를 이용해 코드값출력
    
    return 0;
}

 

결과 :

 

 

 

 

728x90
반응형