예를들어..
어떤 8비트에.. 1111 1111 이란 값이 채워져 있는데.. 이것을 << 8 이렇게 하면.. 왜 1111 1111 이 되는건가요? 0000 0000 이 되어야 하는것 같은데...
<< 이 아니라 >> 연산이 아닐까요? ^^
<< 8 연산을 하면 0000 0000이 됩니다.
>> 연산은 부호가 확장됩니다.
signed char sc = 0xff; unsigned char uc = 0xff;
를 가지고 >> 8 를 각각 해 보시면 결과가 다르다는 걸
아실 수 있을것입니다.
이 경우가 아니라면 작성하신 코드 어딘가에
잘못해석될 수 있는 부분이 있을 것으로 생각됩니다.
텍스트 포맷에 대한 자세한 정보
<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]
Re: 비트 연산에서..
<< 이 아니라 >> 연산이 아닐까요? ^^
<< 8 연산을 하면 0000 0000이 됩니다.
>> 연산은 부호가 확장됩니다.
signed char sc = 0xff;
unsigned char uc = 0xff;
를 가지고 >> 8 를 각각 해 보시면 결과가 다르다는 걸
아실 수 있을것입니다.
이 경우가 아니라면 작성하신 코드 어딘가에
잘못해석될 수 있는 부분이 있을 것으로 생각됩니다.
댓글 달기