Operators in Python 7

ในบทความนี้เราจะมาต่อกันที่ Operators ในภาษา Python กันนะครับ จากบทความ Operators ในตอนที่ 1 เราได้บอกว่าตัวดำเนินการหรือ Operators ในภาษาไพทอนนั้นมีด้วยกัน 7 ชนิดซึ่งเราได้อธิบายไปในแต่ละบทความเรียบร้อยแล้ว ในบทความนี้เราจะมาอธิบายในตัวดำเนินการตัวสุดท้ายนั่นก็คือ Bitwise Operators ในภาษาไพทอนนั่นเองครับ

สำหรับ Bitwise Operators นั้น เราจะใช้ในกรณีที่เราต้องการเปรียบเทียบ Binary Values ของจำนวนที่มีมากกว่า 1 โดย Binary Values จะมีค่าได้แค่สองค่าเท่านั้นคือ 0 และ 1

โดยหลักการเบื้องต้นจะเหมือนกับ Logical Operators แต่แตกต่างกันที่เรามีการเปรียบเทียบที่มากกว่า 1 นั่นเอง (ถ้าเป็น Logical Operator จะเปรียบเทียบ Binary Values เช่นกัน แต่จะเปรียบเทียบแค่คู่เดียว)

สามารถย้อนกลับไปดูบทความ Operators in Python 4

สัญลักษณ์ตัวดำเนินการตัวอย่างความหมาย
AndX > 1 and X > 5คืนค่า True ถ้า Statements ทั้งสองเป็นความจริง
OrX < 3 or X < 10คืนค่า True ถ้าอย่างน้อย 1 Statement เป็นความจริง
notNot(X > 20)คืนค่าตรงข้ามกับ Statement นั้นๆ

จะเห็นได้ว่า Logical Operator เป็นการดำเนินการแบบคู่เดียว เช่น X > 1 and X > 5 ซึ่งถ้าให้ X =4 เราจะได้ว่า Statementt แรก X > 1 เป็นจริง = True และ Statement 2 เป็นเท็จ = False

โดยในภาษาการเขียนโปรแกรม เราจะให้ True = 1, False = 0 เพื่อนำไปเปรียบเทียบกับตารางหาค่าความจริงด้านล่าง

เราจะได้ว่า A เป็น Statement แรก มีค่าความจริง = 1 และ B เป็น Statement สอง มีค่าความจริง = 0

ดังนั้นเราจะได้ผลลัพธ์ (Y) เป็น 0 นั่นก็คือ False นั่นเอง เราจะเห็นได้ว่าสำหรับ and จะต้องเป็น True ทั้งสองกรณีผลลัพธ์จึงเป็น True ต่างจาก or ถ้ามีกรณีใดกรณีหนึ่งเป็น True ผลลัพธ์จะเป็น True ทันที

ต่อมาเมื่อเราเข้าใจ Logical Operators เราจะกลับมาดูที่ Bitwise Operators กันครับ (ในตัวอย่าง เราจะแทนเลขแต่ละหลักเป็น Statement ว่า Statement นั้นเป็นจริงหรือไม่

เช่น 1001 หมายความว่า Statement ที่ 1 และ 4 เป็นจริง แต่ 2 และ 3 เป็นเท็จ

สัญลักษณ์ตัวดำเนินการตัวอย่างความหมาย
&0101 & 0110หาค่าความจริงของแต่ละหลักด้วยตัวดำเนินการแบบ and
|1010 | 1101หาค่าความจริงของแต่ละหลักด้วยตัวดำเนินการแบบ or
^1111 ^ 0010หาค่าความจริงของแต่ละหลักด้วยตัวดำเนินการแบบ xor
~~1101หาค่าความจริงของแต่ละหลักด้วยตัวดำเนินการแบบ not
<< 1010 << 2ย้ายเลขทุกตัวไปทางซ้ายและเพิ่มศูนย์แทนที่ (Shifting)
>> 1010 >> 2ย้ายเลขทุกตัวไปทางขวาและเพิ่มศูนย์แทนที่ (Shifting)

ในบทความต่อไปเราจะมาพูดถึงรายละเอียดของ Bitwise Operators แต่ละตัวกันนะครับ

Write a comment