ตัวดำเนินการ << และ >> ทำอะไรได้ สำหรับ python

Post a reply


In an effort to prevent automatic submissions, we require that you complete the following challenge.
Smilies
:icon_plusone: :like: :plusone: :gfb: :-D :) :( :-o 8O :? 8) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: :angry: :baa: :biggrin:
View more smilies

BBCode is ON
[img] is ON
[flash] is OFF
[url] is ON
Smilies are ON

Topic review
   

Expand view Topic review: ตัวดำเนินการ << และ >> ทำอะไรได้ สำหรับ python

ตัวดำเนินการ << และ >> ทำอะไรได้ สำหรับ python

by chatee supasand » 07/06/2019 2:36 pm

หลายคนคงเคยเห็นผ่านตามาแล้วสำหรับคนที่กำลังเริ่มต้นศึกษาภาษา python
แล้วยังงงกับตัวดำเนินการ <<,>> ว่ามันทำงานยังไง
แล้วเวลาRunขึ้นมาแล้วทำไมมันถึงได้ค่าออกมาแบบนี้

งั้นเรามาดูกันเลยดีกว่าว่ามันทำงานยังไง

มาลองใช้ตัว >> กันก่อนดีกว่า

ให้ตัวแปร a = 10 , a >> 0

Code: Select all

a = 10 
 
print 'a >> 0 = ' , a >> 0 
ผลลัพธ์ที่ได้ คือ 10
pcode2.jpg
pcode2.jpg (25.42 KiB) Viewed 132 times
มาลอง a = 10 , a >> 1

Code: Select all

a = 10 
 
print 'a >> 1 = ' , a >> 1 
ผลลัพธ์ที่ได้ คือ 5
pcode1.jpg
pcode1.jpg (27.23 KiB) Viewed 132 times

มาลอง a = 10 , a >> 2

Code: Select all

a = 10 
 
print 'a >> 2 = ' , a >> 2 
ผลลัพธ์ที่ได้ คือ 2
pcode3.jpg
pcode3.jpg (25.89 KiB) Viewed 132 times
จะเห็นได้ว่า ผลลัพธ์ที่ได้ จากค่าตัวแปร a = 10 นั้น

ค่าจะถูกตัดทอนทีละครึ่งลงไปเรื่อย ๆ a >> 0 ค่าจะยังเป็น 10 อยู่

แต่พอ a >> 1 ค่าจาก 10 จะถูก แบ่งครึ่ง ให้เหลือ 5

และถ้า a >> 2 ค่าจาก 10 จะถูก แบ่งครึ่ง ให้เหลือ 5 และถูกแบ่งอีกครั้ง จะเหลือ 2 หรือก็คือทำงาน 2 ครั้งนั้นเอง

ปล.ที่ไม่เหลือ 2.5 เพราะ จะไม่เอาเศษ ปัดเศษทิ้งนะครับและค่าจะไม่ตำกว่า 0 หรือ ติดลบนั้นเอง

ต่อมากับตัวของ <<

ให้ตัวแปร a = 10 , a << 0

Code: Select all

a = 10 
 
print 'a << 0 = ' , a << 0 
ผลลัพธ์ที่ได้ คือ 10
pcode4.jpg
pcode4.jpg (26.45 KiB) Viewed 132 times
มาลอง a = 10 , a << 1

Code: Select all

a = 10 
 
print 'a << 1 = ' , a << 1 
ผลลัพธ์ที่ได้ คือ 20
pcode6.jpg
pcode6.jpg (25.97 KiB) Viewed 132 times
มาลอง a = 10 , a << 2

Code: Select all

a = 10 
 
print 'a << 2 = ' , a << 2 
ผลลัพธ์ที่ได้ คือ 40
pcode5.jpg
pcode5.jpg (26.15 KiB) Viewed 132 times
จะเห็นได้ว่า ผลลัพธ์ที่ได้จาค่าตัวแปร a = 10 นั้น

จะถูกทำให้เพิ่มขึ้น2เท่าไปเรื่อย ๆ จาก a << 0 จะยังเท่ากับ 10

พอ a << 1 จะถูกทำให้เพิ่มขึ้นเป็น 2 เท่า 1 ครั้ง จะเท่ากับ 20

และถ้า a << 2 จะถูกทำให้เพิ่มขึ้นเป็น 2 เท่า 2 ครั้ง จะเท่ากับ 40

ดังนั้นจะเห็นว่า การทำงานของตัว ดำเนินการ <<,>> จะทำงานคล้ายๆกัน

:baa: :lol: :like:

Top