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