Saturday, May 21, 2016

ตัวเลือกไบนารี python_2






+

คำถามที่พบบ่อย: สิ่งที่ผู้ประกอบการทำ & lt นั้น & lt ;, & gt; & gt ;, & amp ;, |, และ ^ ทำอย่างไร เหล่านี้เป็นผู้ประกอบการ ธ บิต บทนำ: ตัวเลขเจ้าตัว-ส่วนประกอบ ทั้งหมดของผู้ประกอบการเหล่านี้ร่วมกันสิ่งที่เหมือนกัน - พวกเขาจะ "บิต" ผู้ประกอบการ นั่นคือพวกเขาทำงานเกี่ยวกับตัวเลข (ปกติ) แต่แทนที่จะรักษาตัวเลขที่ราวกับว่ามันเป็นค่าเดียวที่พวกเขารักษามันราวกับว่ามันเป็นสตริงของบิตเขียนเจ้าตัว-เสริมไบนารี ไบนารีสมบูรณ์สองเป็นเช่นเดียวกับการเป็นตัวแทนไบนารีคลาสสิกสำหรับจำนวนเต็ม positve แต่แตกต่างกันเล็กน้อยสำหรับตัวเลขที่ติดลบ ตัวเลขติดลบโดยมีตัวแทนที่มีประสิทธิภาพการทำงานที่สมบูรณ์สองในค่าสัมบูรณ์ของพวกเขา ดังนั้นสรุปโดยย่อของไบนารีเจ้าตัว-สมบูรณ์อยู่ในลำดับที่: ไบนารีส่วนประกอบสองสำหรับจำนวนเต็มบวก: 0 เขียนเป็น "0" 1 เขียนเป็น "1" 2 เขียนเป็น "10" 3 คือ "11" 4 คือ "100" 5 คือ "101" . . 1029 คือ "10000000101" == 2 ** 10 ** + 2 2 + 2 ** == 0 1024 + 4 + 1 ไบนารีส่วนประกอบสองสำหรับจำนวนเต็มเชิงลบ: ตัวเลขที่ติดลบจะเขียนด้วยชั้นนำหนึ่งแทนที่จะเป็นศูนย์นำ ดังนั้นหากคุณกำลังใช้เพียง 8 บิตสำหรับตัวเลขเจ้าตัว-สมบูรณ์ของคุณแล้วคุณรักษารูปแบบจาก "00000000" กับ "01111111" ขณะที่ตัวเลขทั้ง 0-127 และสำรอง "1xxxxxxx" สำหรับการเขียนตัวเลขติดลบ จำนวนลบ A, - x, เขียนโดยใช้รูปแบบบิตสำหรับ (x-1) ที่มีทั้งหมดของบิตครบครัน (เปลี่ยน 1-0 หรือ 0-1) ดังนั้น -1 จะถูกเติมเต็ม (1-1) = เสริม (0) = "11111111" และ -10 เป็นส่วนประกอบ (10-1) = เสริม (9) = สมบูรณ์ ("00001001") = "11110110" ซึ่งหมายความว่าตัวเลขติดลบไปตลอดทางลงไป -128 ("10000000") แน่นอนงูใหญ่ไม่ได้ใช้หมายเลข 8 บิต ที่เคยใช้ แต่บิตหลายคนพื้นเมืองไปยังเครื่องของคุณ แต่เนื่องจากว่าเป็นที่ไม่ใช่แบบพกพาก็มีการเปลี่ยนเมื่อเร็ว ๆ นี้โดยใช้จำนวนอนันต์ของบิต ดังนั้นจำนวน -5 ได้รับการปฏิบัติโดยผู้ประกอบการระดับบิตราวกับว่ามันถูกเขียนขึ้น ". 1111111111111111111011" ต๊าย! ด้วยเบื้องต้นที่ออกจากทาง (และเดี๋ยวก่อนคุณอาจรู้อย่างนี้แล้ว) ผู้ประกอบการที่ง่ายต่อการอธิบาย: ผู้ประกอบการ: x & lt; & lt; ปีผลตอบแทน x กับบิตขยับไปทางซ้ายโดยสถาน Y (และบิตใหม่บนขวามือด้านเป็นศูนย์) นี้เป็นเช่นเดียวกับการคูณ x 2 ปี ** x & gt; & gt; ปีผลตอบแทน x กับบิตขยับไปทางขวาโดยสถานที่การ y นี้เป็นเช่นเดียวกับ // 'ไอเอ็นจี x 2 ปี ** x & amp; y ที่ไม่เป็น "ค่าที่เหมาะสมและ" บิตของการส่งออกแต่ละ 1 ถ้าบิตที่สอดคล้องกันของ x และ y ที่เป็นของ 1 มิฉะนั้นก็ 0. x | y ที่ไม่เป็น "บิตหรือ" บิตของการส่งออกแต่ละ 0 ถ้าบิตที่สอดคล้องกันของ x และ y ที่เป็นของ 0, มิฉะนั้นจะเป็น 1 x ผลตอบแทนที่สมบูรณ์ของ x - จำนวนที่คุณได้รับโดยการเปลี่ยนแต่ละ 1 0 0 และแต่ละสำหรับ 1 นี้เป็นเช่นเดียวกับ - x - 1 x ^ y ที่ไม่เป็น "บิตพิเศษหรือ" บิตของการส่งออกแต่ละเป็นเช่นเดียวกับบิตที่สอดคล้องกันใน x ถ้าบิตที่ในปีเป็น 0 และเป็นส่วนประกอบของบิตใน x ถ้าบิตที่ในปีเป็น 1 เพียงจำเกี่ยวกับที่แบบไม่มีที่สิ้นสุด 1 บิตในจำนวนลบและสิ่งเหล่านี้ทุกคนควรให้ความรู้สึก อืน ๆ อีกจุดหนึ่ง: งูหลามช่วยให้ดำเนินงานเพื่อให้การเรียนบางคนอาจจะเขียนขึ้นเพื่อช่วยให้ผู้ประกอบการระดับบิต แต่มีบางความหมายอื่น ๆ ยกตัวอย่างเช่นโมดูลชุดใหม่สำหรับ Python 2.3 ใช้ | และ & amp; เพื่อความเป็นเอกภาพและสี่แยก




No comments:

Post a Comment