unsigned long long int의 출력

Bini의 이미지

sdl라이브러리를 윈도우에서 설치할일이 있어서 msys, mingw를 설치하고 sdl소스를 받아서 컴파일하고 인스톨했읍니다.
심심풀이로 다음과 같은 코드를 짰는데 msys상에서 gcc로 컴파일했는데 결과가 이상하네요? 아주예전에는 c를 사용했지만,
지금은 거의 사용하지 않는관계로 뭐가 뭔지...
unsigned long long int형의 범위내의 값인것 같은데....

#include <stdio.h>

int main(void) {
unsigned long long int i;

i = 23456789123LLU;
printf("===> %llu", i);

return 0;
}

===> 1981952643

ssehoony의 이미지

23456789123 => 0x576223283
0x76223283 => 1981952643

정확하게 뒷부분 4바이트만 처리가 됐군요.

의심은 컴파일러 아니면 C 라이브러리 일 것 같은데

일단 컴파일러가 정상적으로 지원하는지 여부 부터 확인을 하시는게 좋을 듯 합니다.

unsigned long long a = 1000000000000ULL;
unsigned long long b = a / 1000000ULL;
unsigned long c = (unsigned long)b;

printf("%u\n", c);

이런 코드를 이용해 정상적으로 결과가 출력되는지 테스트 해보시면 어떨까요?

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.