ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Shift operation
    개발하면서/etc 2009. 10. 22. 23:23
    shift연산이라하면 32비트 컴퓨터에서 32비트를 왼쪽 혹은 오른쪽으로 이동하는것을 말하고,
    이동후 빈공간은 0으로 채워지는걸로만 알았는데. . . 무려 3개의 종류가 있었다......두둥....(이놈의 무지.....)

    위키를보고 내 나름대로 정리해보려한다.
    출처 URL은 
    Arithmetic shift,         Logical shift,       Circular shift


    Arithmetic shift
    왼쪽로 이동한후 빈공간은 0으로 채워지고, 오른쪽 shift후 빈공간은 가장왼쪽비트(즉 부호비트)가 채워지게 된다.
    즉 부호비트를 보호한다는것~!!
    부호있는 수를 2로 나누거나(나머지는 버림), 부호없는 수를 2로 곱할때 유용하게 사용할수 있다. 
    왼쪽 시프트 할때는 overflow가 생길수도 있다~!! (CS, CP 레지스터에 대한 공부 요망

    Logical shift
    왼쪽 으로 하던, 오른쪽으로 하던 무조건 빈공간은 0으로 채워진다.
    부호있는 수,부호없는수를 곱하거나, 부호없는수를 나누거나 할때 유용하다.
    Logical은 부호를 보호하지 않기때문에...

    Circular shift
    이것은 간단하다.
    shift연산으로 밀린 비트가 빈공간에 채워진다.(rotate) 이건 그림 설명이 더 나을듯 하다
    이걸 함수로 구현해놓았는데 ㅎㄷㄷ. . .다시금 수학의 필요성을.....;;;


    게이트웨이를 움직이는 그림으로 설명되어있음.  게이트웨이 설명 URL

    이 글은 저의 이해 및 정리한 것이므로 사실과 다를 수 있습니다.
    틀린점은 지적해주시면 감사하겠습니다.

    댓글 0

Designed by Tistory.