Friday 4 August 2017

ปกติ ลอย จุด ตัวแทน ไบนารี ตัวเลือก


ฉันกำลังพยายามช่วยคนออกไปกับการบ้านบางส่วนและฉันได้รับคำตอบที่ผิดพลาด คำถามคือ: ตัวแทน -0.10937510 ในการแทนจุดลอยมาตรฐานที่มี 5 บิตเศษส่วน twos เสริม mantissa และเลขจำนวนเต็ม 3 บิตจำนวนเต็มสองส่วนเสริม ฉันได้เขียนบันทึกย่อดังต่อไปนี้: ให้คำตอบสำหรับคำถาม: -0.10937510 ขั้นตอนที่ 1: แปลงเป็นไบนารี 0 0 0 0 0 1 1 1 0 0 ขั้นตอนที่ 2: คูณด้วย 1 (20) - (00.00011100) 2 x 20 ขั้นตอนที่ 3: Shift เพื่อสร้าง mantissa number ทั้งหมดเราจำเป็นต้องเลื่อน 6 ครั้งไปทางซ้ายทำไมเพราะเรามี 0.000111 Shift 1 00.00111 Shift 2 000.0111 Shift 3 0000.111 Shift 4 00001.11 Shift 5 000011.1 Shift 6 0000111 ดังนั้นเราจึงได้รับ - (1112) x 2 (-6) ขั้นตอนที่ 4: แปลง mantissa ในคำถามนี้เราขอให้แปลงเป็น twos complement (5-bit fractional) ดังนั้นเราจำเป็นต้องแปลง 111 to twos complement และสร้าง 5 bit นี้ขั้นที่ A: แปลงเป็น complement (5 bit) -00111 11000 Step B: Convert to twos complement (5-bit) 11000 00001 110012 ขั้นตอนที่ 5: แปลงเลขยกกำลังด้านบน 2-bit twos complement 2 (-6) ดังนั้นเราต้องแปลง -6 เป็น binary (twos complement) ขั้นที่ A: แปลงเป็น binary 1 1 0 Step B : แปลงเป็นคอมโพเนนต์ (3 บิต) 110 001 ขั้นตอนที่ C: แปลงเป็น twos complement 010 คำตอบคือ 11001 0102 ดังที่คุณเห็น 2-6 ดูเหมือนจะไม่ถูกต้องสำหรับส่วนเสริมของ twos 3 บิต ทุกคนสามารถชี้ให้เห็นสิ่งที่ฉันอาจจะทำผิดปกติ significand (ไม่ mantissa 1) จะเปลี่ยนดังนั้นบิตที่สำคัญที่สุดหนึ่งอยู่ในตำแหน่งหนึ่งไม่สำคัญ significand เป็นจำนวนเต็ม รูปแบบ IEEE 754 จะให้ความสำคัญกับ 1 dddd ซึ่งแต่ละ d เป็นตัวเลขในฐานที่ใช้ การขยับค่าของคุณเพื่อย้ายตำแหน่งหนึ่งครั้งแรกไปยังตำแหน่งนั้นจะให้ค่าเป็นเลขยกกำลัง 4. คุณจะมี 1.110 2 2 4. เพื่อแสดงความสำคัญในส่วนเสริม twos เราเพิ่มอีกบิตหนึ่งทางซ้ายเพื่อสร้าง 01.110 2 2 4 และจากนั้น ใช้ negation เพื่อให้ 10.010 สำหรับ significand และ 100 สำหรับเลขชี้กำลัง อย่างไรก็ตามอาจมีความแตกต่างบางประการเกี่ยวกับรายละเอียด มีนัยสำคัญและมีนัยสำคัญเป็น 1 dddd หรือ. 1 dddd มีนัยสำคัญห้าบิตก่อนที่จะเพิ่มเครื่องหมายหรือหลังคุณมีตัวอย่างของค่าที่มีการระบุที่เป็นที่รู้จักในรูปแบบนี้หรือรายละเอียดเพิ่มเติมเกี่ยวกับรูปแบบ 1 Significand เป็นคำที่ต้องการ significand เป็นเส้นตรง mantissa เป็น logarithmic. Im สับสนเล็กน้อยเกี่ยวกับวิธีการ normize ตัวเลขใน C. ฉันรู้ว่าถ้าคุณมีสิ่งที่ต้องการทศนิยมค่าไบนารีทศนิยม 1101.101 เป็น normalized เป็น 1.101101 x 23 โดยย้ายทศนิยม 3. ตำแหน่งทางด้านซ้าย แต่ผมไม่แน่ใจว่าจะทำอย่างไรในโค้ด ดังนั้นถ้าฉันมี 10010000 exp 0 และฉันต้องการได้รับ 01001000 exp 1 ฟิลด์เศษส่วนคือ 001 และผลสุดท้ายคือ 010001 ถ้าฉันมีหมายเลข 8 บิตและ 2 บิตชั้นนำเป็น 00 ฉันต้องการย้ายไปจนกว่าฉัน หา 1 หรือถ้าฉันมีบิตชั้นนำของ 01 แล้วก็เป็นเรื่องปกติแล้ว คล้ายกันสำหรับนำ 2 บิตจาก 11 ฉันย้ายไปทางซ้าย ดังนั้นถ้าจำนวนของฉันคือ 32 บิต 1 สำหรับเครื่องหมาย 8 สำหรับเลขชี้กำลัง 23 สำหรับ Mantra ผมจะทำอะไรเช่น: แล้วอีกหลายถ้างบอื่น ๆ 2 นำบิตจำนวน (00, 10) ฉันไม่ได้ แน่ใจว่า logiccode ของฉันถูกต้อง เช่นเดียวกับที่คุณพูดคุณต้องแยกเครื่องหมาย mantissa และเลขยกกำลัง แผนผังข้างต้นนำมาจากวิกิพีเดียแสดงให้เห็นว่ามีการวางรูปแบบจุดลอยตัวที่มีจุดเด่นที่สุดแบบเดียวคือ IEEE 754 ในการแยกแต่ละส่วนที่เราต้องทำในสามขั้นตอนด้านล่างนี้ ฉันไม่มีรหัส C แต่ฉันจะแสดงขั้นตอนที่คุณต้องทำ หลังจากสกัดทั้ง 3 ส่วนแล้วให้วางตำแหน่งบิตไว้ในแผนภาพด้านบน ถ้าเป็นตัวเลขที่ไม่ได้ลงนามนี้เสมอ 0. ถ้า MSB ลงนาม 2. เลขคณิตหากตัวเลขมีการเซ็นชื่อและลบคุณจะต้องพลิกบิตทั้งหมดและเพิ่ม 1 เพื่อทำให้เป็นบวก ถ้าคุณไม่สามารถปล่อยให้มันเหมือนเดิมได้ ในการแยกเลขชี้กำลังเราต้องทราบว่าจุดไบนารีเป็นไปได้อย่างไร ให้ตำแหน่งของจุดไบนารีเป็น b (ในตัวอย่างของคุณคือ 3) ปล่อยบิตแรกจาก MSB ที่ 1 เป็น p (ในตัวอย่างของคุณคือ 6) ให้เลขชี้กำลังเป็น e. 3. Mantissa นี้จะเท่ากับบิตจากตำแหน่ง p-1 ลงไปที่ 0.How เพื่อแสดง 0.148 2 ในคณิตศาสตร์จุดลอยตัว normalised กับรูปแบบ (0.148) (0.00100101111.) 2 เราเปลี่ยน 3 บิตไปทางซ้ายเพื่อให้ ปกติ (1.00101111) 2 2. เลขยกกำลัง 1164 (75) (1001011) 2 และ Mantissa (01001111) 2. ดังนั้นถ้าเราเก็บ mantissa denormalized ลงในการลงทะเบียน 8 bit แล้วมันเคยชินเก็บไว้สาม 1s แล้ว mantissa จะมี normalized จาก (0.00100101) 2 (1.00101000. ) 2 โดยการใส่ 3 0s แทน 1s การแทนจะเป็น (0100101100101000) 2 (4B28) การเป็นตัวแทน B ในขณะที่ normalizing โปรเซสเซอร์จะคำนึงถึงชิ้นส่วนของ mantissa ที่มีขนาด denormalized เกินกว่า 8 บิตหรือเพียงแค่ตัดมันออกหนึ่งอันไหนถูกต้อง: A หรือ B เก็บไว้ที่ mantissa ในการชี้จุดคงที่ทำงานทั้งหมดได้อย่างไร

No comments:

Post a Comment