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
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
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