Q&A

  • shl shr 의 의미좀 알려주세요
Edit1.Text := floattostr( 10000000 shl 16);
Edit2.Text := floattostr( 10000000.0 * 65536);
위처럼 shl은 2의 16승을 곱한다는 의미인가요
edit1, edit2 값을 같더군요

Edit3.Text := floattostr( 10000000 shr 16);
Edit4.Text := floattostr( 10000000 / 65536 );
그리고 shr은 반대로 나누는 의미인가요?
edit3과 에는 소수점이하자리가 없고
edit4 에 소숫점이하자리가 있더군요

shl 과 shr의 의미 좀알려주세요
1  COMMENTS
  • Profile
    신현웅 2004.01.27 20:51


    shl : shift left
    shr : shift Right

    입니다.

    Bit연산하느거구요

    1Byte = 8bit죠

    10진수로 8이란 값이 있습니다

    이걸 2진수로 표현하면

    00001000

    입니다

    8 shl 1 을 하게 되면 8이란 값을 왼쪽으로 1bit 이동해라... 이런 말이죠

    그럼

    00001000(2진수)가 00010000(2진수)로 값이 됩니다

    00010000(2진수)는 10진수로 16이 되겠죠

    8 shr 1 을 하면 오른쪽으로 1bit이동해라고 되겠죠?

    00001000 -> 00000100

    가 되어 10진수로 값이 4가 됩니다.

    shl, shr은 2진수로 생각하셔서 왼쪽으로 몇 bit, 오른족으로 몇 bit 이동시킬까 하는 것입니다

    즐코하셔요