컴퓨터 엑셀 워드 포토숍 구글어스 WINDOWS JAVASCRIPT JAVA C++

 
Previous Post Perl 펄] signed int를 unsigned형 정수로 변환 캐스팅 함수Python 파이썬] signed int를 unsigned형 정수로 변환 캐스팅 함수Python 파이썬, 문자열 합치기, 연결 병합; Merge StringJava 자바] 이진파일 쓰기, 바이너리 파일로 저장 예제 소스; Binary File W...파이썬 Python, 헥사 뷰어, 헥사 덤프 만들기 소스 코드; Hex Viewer, Fi...매스매티카 Mathematica, 정규분포, 가우스 분포 랜덤 난수 발생 함수; Norma...매스매티카 Mathematica, 화면(노트북)지우기 명령, 변수 삭제; Clear Not...매스매티카 Mathematica] 랜덤 난수 출력 함수, 정수 실수; Random Rand...C언어] printf 함수 CR-LF 줄바꿈, 개행문자(Newline), 엔터(Enter)...Perl 펄] 헥사 뷰어, 헥사 덤프 만들기 소스 코드; Hex Viewer, File D...

C 언어] signed int 를, unsigned int 로 상호 변환, 캐스팅

Wednesday, April 18, 2007

C에서는 내부적으로 unsigned 형을 잘 지원하기에, 별도의 함수를 만들지 않고도, signed형과 unsigned형을 상호 변환할 수 있습니다.

예를 들어 변수명이나 숫자 앞에
(unsigned int)
이런 "캐스트 연산자"를 붙여 주면 unsigned int형으로 변환됩니다.

signed int, unsigned int 상호 변환 예제 소스


소스 파일명: example.cpp
#include <stdio.h>

int main(void) {

  /////////////////////////////////////////////////////////
  // signed int 를 unsigned int로 변환


  // "%u" 라는 형식 지정자를 사용하여
  printf("%u\n", -1); // 4294967295

  // (unsigned int) 로 캐스팅하여
  printf("%u\n", (unsigned int) -1); // 4294967295

  // 변수에 캐스팅 연산자 사용하여
  int n = -1;
  printf("%u\n", (unsigned int) n);  // 4294967295



  // int형이 표현 가능한 최대값을 초과했기에 이런 경고 발생
  // warning C4307: '+' : integral constant overflow
  printf("%u\n", 0x7FFFFFFF + 1);  // 2147483648
  // 이때는 상수에 U 접미사를 붙여서, unsigned형 상수로 만들면 됨
  printf("%u\n", 0x7FFFFFFFU + 1);  // 2147483648




  /////////////////////////////////////////////////////////
  // 위와는 반대로, unsigned int형을 signed int 로 변환
  // 그냥 int 는 "signed int"임

  // "%d" 라는 형식 지정자를 사용하여
  printf("%d\n", 4294967295); // -1

  // (signed int) 또는 (int) 로 캐스팅하여
  unsigned int x = 4294967295;
  int y = (int) x;
  printf("%d\n", y); // -1


  return 0;
}



▶▶ C언어] unsigned 형의 의미, 부호 없는 정수, unsigned int, signed char

0 Comments:

Post a Comment

<< Home RSS 2.0 feed

구글 Google 에서 제공하는 무료 블로그 서비스인 블로거 Blogger 의 인터넷 주소는 www.blogger.com 입니다. Blogger 에 블로그를 만들면, blogspot.com 이라는 주소에 블로그가 생성됩니다.
블로그를 직접 방문하지 않고도 최신 게시물을 구독하려면 RSS 2.0 feed 주소를 리더기에 등록하시면 됩니다.
Categories
Previous Posts
Monthly Archives
Top