Page 43 - python
P. 43
17
- Sign Magnitude เปนวิธีทําเลขลบดวยการนําบิตซายสุดเปนเครื่องหมาย (1 คือลบ 0
คือบวก) ถาตองการแทนเลข +1 จะมีคา 0001 และหากตองการแทนเลข -1 จะแทน
ดวย 1001
- One’s complement เปนการแทนเลขลบดวยการสลับบิต เชน เลข 1 มีคา 0001
เมื่อทําเลขลบดวยวิธีนี้จะสลับจาก 0 เปน 1 และจาก 1 เปน 0 ดังนั้น เลข -1 ของวิธี
ี
ี
้
นมคา 1110
จากภาพดานบนจะพบวาวิธีการทําเลขลบดวยวิธี Sign magnitude และ one’s complement
ั้
มีปญหาที่ เลข 0 มีทง +0 และ -0 ซึ่งในความเปนจริงคือตัวเลขเดียวกัน คือ 0 จึงไดมีการคิดวิธีการสราง
เลขลบแบบใหม เพื่อแกปญหาการมีเลข +0 และ -0 เรียกวิธีนี้วา two’s complement วิธีการคือ
หลังจากการทํา one’s complement แลวใหบวกเพิ่มดวย 1
จากหัวขอวงจรบวกเลขที่ผานมา ถาตองการลบเลข เชน 5 - 3 โดยใชวงจรบวกเลข สามารถทําได
ุ
โดย ปอนอินพต คือ 5 + (-3) กลาวคือ ทําการแปลงเลข 3 เปน -3 จากนั้นสงผานเขาไปในวงจรบวกเลข
จะสามารถคํานวณการลบเลขโดยใชวงจรบวกเลขตัวเดิมได
2.13 การเลื่อนบิตไปทางซายและขวา
ในภาษาไพธอนใชเครื่องหมาย << แทนการเลื่อนบิตไปทางซาย และใชเครื่องหมาย >> แทนการ
เลื่อนบิตไปทางขวา
ตัวอยางที่ 2.1 การเลื่อนบิตไปทางซายและทางขวา
x = 4
print(x << 1)
print(x >> 2)
ผลลัพธ :
8
1
ตัวอยางที่ 2.1 เลข 4 ในรูปฐาน 2 คือ 0100 เมื่อเลื่อนไปทางซาย 1 ตําแหนงจะมีคา 1000 มีคา
เทากับ 8 ในขณะที่เลข 4 นํามาเลื่อนบิตไปทางขวา 2 ตําแหนง จะมีคา 0100 เปน 0001 ซึ่งมีคาเทากับ 1
2.14 การเขียนโปรแกรมคํานวณเสนรอบวงกลม
้
ี
ั
ในหวขอนเปนการคํานวณ เสนรอบวงกลม จากสูตร = 2 เมื่อ คือความยาวเสนรอบวงกลม
และ คือ รัศมี
ตัวอยางที่ 2.2 การคํานวณเสนรอบวงกลม
from math import pi
def main():