ปัญหา
โปรแกรมง่ายๆ แสดงการขยับซ้าย ขยับขวา และคอมพลีเมนต์ของตัวเลข โดยใช้ภาษา C?
วิธีแก้
การขยับซ้าย (Left Shift)
หากค่าตัวแปรขยับซ้าย 1 ครั้ง ค่าจะเพิ่มเป็นสองเท่า
ตัวอย่าง: a = 10, ดังนั้น a << 1 = 20

การขยับขวา (Right Shift)
หากค่าตัวแปรขยับขวา 1 ครั้ง ค่าจะลดเหลือครึ่งหนึ่ง
ตัวอย่าง: a = 10, ดังนั้น a >> 1 = 5

ตัวอย่าง
โปรแกรม C สำหรับการดำเนินการเลขแบบขยับบิต:
#include <stdio.h>
int main() {
int a = 9;
printf("Right shift of a = %d\n", a >> 1); // 4
printf("Left shift of a = %d\n", a << 1); // 18
printf("Complement of a = %d\n", ~a); // -[9+1] = -10
printf("Right shift by 2 of a = %d\n", a >> 2); // 2
printf("Left shift by 2 of a = %d\n", a << 2); // 36
return 0;
}ผลลัพธ์
เมื่อรันโปรแกรม จะได้ผลลัพธ์ดังนี้:
Right shift of a = 4 Left shift of a = 18 Complement of a = -10 Right shift by 2 of a = 2 Left shift by 2 of a = 36