Computer >> Máy Tính >  >> Lập trình >> lập trình C

Các phép toán dịch chuyển trong ngôn ngữ C là gì?

Vấn đề

Chương trình đơn giản để hiển thị các dịch chuyển trái, phải và phần bù của một số bằng cách sử dụng ngôn ngữ C là gì?

Giải pháp

Shift trái

Nếu giá trị của một biến được dịch sang trái một lần, thì giá trị của biến đó sẽ tăng gấp đôi.

Ví dụ:a =10, sau đó a <<1 =20

Các phép toán dịch chuyển trong ngôn ngữ C là gì?

Sang phải

Nếu giá trị của một biến được dịch sang phải một lần, thì giá trị của biến đó sẽ trở thành một nửa giá trị ban đầu.

Ví dụ:a =10, sau đó a>> 1 =5

Các phép toán dịch chuyển trong ngôn ngữ C là gì?

Ví dụ

Sau đây là chương trình C cho các hoạt động thay đổi -

#include<stdio.h>
main (){
   int a=9;
   printf("Rightshift of a = %d\n",a>>1);//4//
   printf("Leftshift of a = %d\n",a<<1);//18//
   printf("Compliment of a = %d\n",~a);//-[9+1]//
   printf("Rightshift by 2 of a = %d\n",a>>2);//2//
   printf("Leftshift by 2 of a = %d\n",a<<2);//36//
}

Đầu ra

Khi chương trình trên được thực thi, nó tạo ra kết quả sau -

Rightshift of a = 4
Leftshift of a = 18
Compliment of a = -10
Rightshift by 2 of a = 2
Leftshift by 2 of a = 36