Native/C

Circular shift (left)

aucd29 2013. 10. 2. 18:49
/**********************************************************************
*
*        2005-04-12
*        Circular shift (left)
*
***********************************************************************/

#include <stdio.h>

void main(void)
{
    int num,i=0,len,n;
    unsigned int x = 0x80000000;

    scanf("%d%d",&num,&n);
    printf("%d를 %d만큼 이동 ", num, n);

    // 앞으로비교 unsigned int x를참조
    len = sizeof(int)*8;

    while(i<len)
    {
        if(i>=n) break;
        
        if(num & x)
        {
            num <<= 1;
            num++;
        }
        else
            num <<= 1;
        ++i;
    }

    len--;
    for(i=len;i>=0;i--)
        printf("%d",num>>i & 1);

    printf("\n");
}