64비트형 정수는 어떤 형을 써야 하고
숫자 뒤나 또는 scanf printf시에는 어떤 접두를 붙여야 하는지요?
__int64 i = 1I64;
scanf("%I64d", &i );
이런 식의 사용이 잘못된 건지요? 윈도우에서는 되서요 ;;
long long int i = 1LL; scanf("%lld", &i );
^^ 또 질문 드립니다. 휴.. 이제 겨우 컴파일은 되는데요;;
비트 값을 이용해서 long long int 형의 데이터를 산출할때..
예를들어서
int bit[64] // 여기에 비트값이 0, 1 들어있다고 하면 long long int Ret = 0LL; for(int i=0; i<64; i++) { if(bit[i] == 1) Ret += 1<<i; }
처음에 이렇게 생각을 했습니다.
그런데 저 쉬프트 연산이 32비트 이후로는 적용이 되지 않더군요;;
저런 경우 64비트 쉬프트는 어떻게 해야 하는지요?
VENI VIDI VICI
Ret += 1LL<<i;
이렇게 하니 되네요. [/code]
http://home.postech.ac.kr/~sodomau
텍스트 포맷에 대한 자세한 정보
<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]
long long int i = 1LL;scanf("%lld", &a
long long int i = 1LL;
scanf("%lld", &i );
..
^^ 또 질문 드립니다.
휴.. 이제 겨우 컴파일은 되는데요;;
비트 값을 이용해서 long long int 형의 데이터를 산출할때..
예를들어서
처음에 이렇게 생각을 했습니다.
그런데 저 쉬프트 연산이 32비트 이후로는 적용이 되지 않더군요;;
저런 경우 64비트 쉬프트는 어떻게 해야 하는지요?
VENI VIDI VICI
[code:1] Ret += 1LL<<i;
이렇게 하니 되네요.
[/code]
http://home.postech.ac.kr/~sodomau
댓글 달기