Computer >> 컴퓨터 >  >> 프로그램 작성 >> C 프로그래밍

주어진 숫자에 대해 비트를 회전시키는 C 프로그램

<시간/>

주어진 숫자에 대해 비트를 회전시키는 C 프로그램을 작성하려면 아래 주어진 요소를 고려하십시오.

  • 비트를 왼쪽에서 오른쪽 또는 오른쪽에서 왼쪽으로 회전합니다.

  • 왼쪽 회전에서는 비트가 왼쪽에서 오른쪽으로 이동합니다.

  • 오른쪽 회전에서는 비트가 오른쪽에서 왼쪽으로 이동합니다.

  • 숫자를 가져 와서 사용자 프로그램에 따라 왼쪽이나 오른쪽으로 회전하십시오.

  • 사용자는 런타임에 숫자와 함께 숫자 회전을 입력해야 합니다.

프로그램 1

다음은 왼쪽 회전을 적용하는 C 프로그램입니다. 주어진 번호에 대해.

#include<stdio.h>
#include<stdlib.h>
int main(){
   int number, rotate, Msb, size;
   printf("Enter any number:");
   scanf("%d",&number);
   printf("Enter number of rotations:\n");
   scanf("%d",&rotate);
   size = sizeof(int) * 8;
   rotate %= size;
   while(rotate--){
      Msb = (number >> size) & 1;
      number = (number << 1) | Msb;
   }
   printf("After Left rotation the value is = %d\n",number);
   return 0;
}

출력

위의 프로그램을 실행하면 다음과 같은 결과가 나온다 -

Enter any number:12
Enter number of rotations:
2
After Left rotation the value is = 48

프로그램 2

다음은 오른쪽 회전을 적용하는 C 프로그램입니다. 주어진 번호에 대해.

#include<stdio.h>
#include<stdlib.h>
int main(){
   int number,rotate, Lsb, size;
   printf("Enter any number:");
   scanf("%d",&number);
   printf("Enter number of rotations:\n");
   scanf("%d",&rotate);
   size = sizeof(int) * 8;
   rotate %= size;
   while(rotate--){
      Lsb = number & 1;
      number = (number >> 1) &(~(1<<size));
      number=number|(Lsb<<size);
   }
   printf("After right rotation the value is = %d\n",number);
   return 0;
}

출력

위의 프로그램을 실행하면 다음과 같은 결과가 나온다 -

Enter any number:18
Enter number of rotations:
2
After right rotation the value is = 4