mwultong Blog ... 프로그래밍 / 계산기

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

 
Saturday, February 03, 2007

C언어] -1 (마이너스 1) 을, 16진수 헥사(Hex)로 표현하면?


-1 (마이너스 1) 을 16진수로 바꾸면, 자료형의 종류에 따라, FF 나 FFFFFFFF 등의 값을 가지게 됩니다.

윈도우 계산기에서는 FF 로 나오지만, C의 32비트 정수(int)에서는 FFFFFFFF 라는 값이 나옵니다.

"32비트 정수(int)"에서의 -1과, "부호 없는, 32비트 정수(unsigned int)"에서의 4294967295 는, 십육진수인 FFFFFFFF 로 똑같이 표현됩니다.

unsigned int 는 음수를 표현할 수 없고, 그 대신 음수를 표현할 메모리를 양수 쪽으로 몰아주어서, 숫자 표현 범위를 플러스 방향으로 2배 확장시킨 것이기 때문입니다.

#include <stdio.h>

int main(void) {

  int i;
  unsigned int ui;


  i = -1;
  printf("%X\n", i);
  // 출력 결과: FFFFFFFF


  i = -2;
  printf("%X\n", i);
  // 출력 결과: FFFFFFFE




  ui = 4294967295; // unsigned int의 최대값
  printf("%X\n", ui);
  // 출력 결과: FFFFFFFF




  i = 2147483647; // int 의 최대값
  printf("%X\n", i);
  // 출력 결과: 7FFFFFFF


  return 0;
}


참고: ▶▶ C언어] 정수 실수 종류(자료형;데이터형), 최소값 최대값; char int float, Data Type Ranges




tag: cpp
C언어 | C/C++ (Visual C++) 프로그래밍

0 Comments:

<< Home RSS 2.0 feed

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