본문 바로가기
프로그래밍

[자료형 형변환] 정수형 정수형의 변환 명세 [쉬운 설명과 예시]

by 스텔라게이트 2023. 3. 25.

[자료형 형변환] 정수형 정수형의 변환 명세 [쉬운 설명과 예시]

자료형 

1. 일반적인 자료형

2. C언어 자료형

3. 각 자료형 변수의 선언

비트와 바이트에 대한 설명 

[정수형] C언어에 있는 6가지 (자료형)

  1. Signed short int 
  2. Unsigned short int 
  3. Signed int 
  4. Unsigned int 
  5. Signed long int 
  6. Unsigned long int 
반응형

1.Signed 와 Unsigned 의 차이 

  1. Signed : 음수와 양수를 표현 
  2. Unsigned : 양수만 표현 

개인적으로는 정형파(Sine wave)는 위아래로 음수 양수 모두 포함 

Unsigned는 그 반대인 양수만 표현 하는 것으로 이해하니 조금 쉽게 습득할 수 있었습니다. 

Signed 와 Unsigned_양수와 음수 [4비트]

예를 들자면 4비트로 표현할 수 있는 수의 개수 : 16가지 [ 0~15까지 ]

▼ 양수 표현 방법

수학에서는 0을 양수로 포함하지 않지만 

컴퓨터에서는 0을 양수로 포함합니다. 

 

▼음수 표현 방법

16가지는 동일하며 -8부터 7까지 표현 (2의 보수 표현법) 

반응형

Signed 와 Unsigned_양수와 음수 [8비트]

256[2의8승] 가지 

Signed 와 Unsigned_양수와 음수 [n비트]

2의n승 가지 

 

2.Short int, int, long int 의 차이 

Short int, int, long int 의 차이는 정수형의 크기를 얘기합니다. 

  1. Short int는 16비트 
  2. Int는 16비트 32비트 (16비트 컴퓨터는 16비트, 32비트 컴퓨터는 32비트, 64비트 컴퓨터는 32비트) 
  3. Long int는 32비트 

3. Signed short int 와 Unsigned short int 의 차이 

16비트 이면서 signed는 음수와 양수를 모두 표현 

16비트이면서 unsigned는 양수를 표현 

4. Signed int 와 Unsigned int 의 차이 

32비트 이면서 signed는 음수와 양수를 모두 표현

32비트이면서 unsigned는 양수를 표현 

5. Signed long int 와 Unsigned long int 의 차이 

32비트 이면서 signed는 음수와 양수를 모두 표현

32비트이면서 unsigned는 양수를 표현 

정수형 정리 

자료형/ 크기/ 표현 범위/ 짧은 이름 

이름이 너무 긴데요. 아래와 같이 짧게 표현이 가능합니다. 

Signed short int  => short, short int, signed short 

Unsigned short int => unsigned short 

Signed int => int, signed

Unsigned int => unsigned

Signed long int => long , long int, signed long 

Unsigned long int => unsigned long

반응형

정수형 상수 

정수형 상수 : 5 또는 -16과 같이 주어지는 수 

정수형 상수는 10진법, 8진법, 16진법으로 표기 가능합니다. 

8진법은 0으로 시작, 16진법은 0X나 0x로 시작합니다. 

아래와 같이 일반적으로 쓰이는 data들이 16진법으로 표기되고 있다는 점 다시한번 확인할 수 있습니다. 

정수형 상수의 자료형 

크기에 따라 int형이나 long int형으로 자동 설정 

long int형으로 설정하려면 수의 끝에 [대문자L 또는 소문자l] 추가

123L은 long int형 123

unsigned 형으로 설정하려면 [대문자U나 소문자u] 추가 

 

정수형의 변환 명세 

  • %d : printf, scanf : signed 10 진수 
    음수나 양수 모두를 다룰 수 있는 10진수를 출력하거나 입력하는데 사용하는 변환 명세 입니다. 
  • %u : printf, scanf : unsigned 10 진수 
    반드시 양수만 입력 또는 출력 -> unsigned 
  • %o : printf, scanf : 8진수, 첫자리에 0표기 안함 8진수 또는 16진수로 입출력 -> %o, %x, %X
  • %x : printf : 16wlstn, abcdef로 출력
    첫 자리에 0x표기 안함 
            scanf : 16진수, 첫 자리에 0x나 0X 표기 안함 
  • %X : printf : 16진수, ABCDEF로 출력
             첫 자리에 0X 표기 안함  
  • %i : printf : signed 10진수 
           scanf : 0이 처음에 있으면 8진수로 해석
                      0x나 0X가 처음에 있으면 16진수로 해석, 
                      어느 쪽도 아니면 10진수로 해석
  • Short 형 : 변환명세 글자 앞 h추가 
  • Long 형 : 변환명세 글자 앞 I추가

반응형

정수형의 변환 명세 (지정자)

긴 형태의 변환 명세 : flag, with, precision 

예) %+5.3d 

  • + : flag 
  • 5 : width 
  • 3d : [점 찍은 다음에 오는 숫자] precision 

항시 위 3가지를 다 사용하는 것이 아니라 일부를 사용하여 출력 형태를 지정할 수 있음. 

 

width 란 

  • 정수/ 출력할 자리의 폭을 지정함 
  • 기본적으로 오른쪽 맞춤을 함 
  • ex) width에 5라고 적는다면, 숫자를 5자리 폭에 맞게 출력해 주는 것 입니다. 
  • 5번째 오른쪽 자리에서 출력을 해준다는 것 (오른쪽 맞춤) 

precision란 

  • 정수/ 출력할 최소의 자리수를 지정함 
  • 남는 자리는 0으로 채움 

flag란 

  • - : 왼쪽 맞춤을 함 
  • + : 양수에 대해서도 부호를 출력 
  • 0 : 남는 왼쪽 자리는 0으로 채움 
  • # : %o와 같이 사용하면 처음에 0을 출력 
         %x(%X)와 같이 사용하면 처음에 0x(0X)를 출력

정수형의 변환 명세 (지정자) 예시1

자 그럼 예를 들어서 한번 설명해 보겠습니다. 

%5d, %05d, %-5d, %5.3d 에 대하여 알아보겠습니다. 

앞에 정수형 변환 명세를 사용하고 printf로 12를 출력했을 때의 가정입니다. 

정수형의 변환 명세 (지정자) 예시2

정수형 변환 명세에서 많은 것들을 나열 해 봤는데요 

일반적으로 사용 되는 것이 %d 와 width 정도가 되겠습니다. 

flag와 precision은 많이 쓰이지는 않지만 가끔 필요할 때 참고 할 수 있게 어딘가에 기록해 두시면 좋을 것 같습니다. 

이상으로 [자료형 형변환] 정수형 정수형의 변환 명세 [쉬운 설명과 예시]에 대한 글을 마치겠습니다. 

읽어주셔서 감사합니다. 

2023.03.10 - [IT] - [중첩반복문] for문 while문 if_else 포함

2023.03.11 - [IT] - [중첩반복문] 쉬운설명 if_else 를 이용한 for문 실습

2023.03.11 - [IT] - [중첩반복문] for문, while문, do-while문_쉬운 설명과 예시_쉼표연산자,break문,continue문

2023.03.25 - [IT] - 반복문_횟수가 달라지는 반복문, break와 countinue, 소수 판별 프로그램, 무한 반복문 [실습문제]

 

 

반응형

댓글