แนวทางแก้ไขปัญหาของบทที่ 3 ของหลักสูตรฐานข้อมูลวิทยาการคอมพิวเตอร์ออนไลน์และอาชีพอินเทอร์เน็ตเต็มรูปแบบตั้งแต่เริ่มต้น

Naewthang Kaekhi Payha Khxng Bth Thi 3 Khxng Hlaksutr Than Khxmul Withyakar Khxmphiwtexr Xxnlin Laea Xachiph Xinthexrnet Tem Rup Baeb Tangtae Reim Tn



ปัญหาและแนวทางแก้ไข
1. วาดเส้นจำนวนด้วยจำนวนเต็มตั้งแต่ -10 ถึง +10

สารละลาย:









2. เพิ่มเลขฐานสองต่อไปนี้ในส่วนเสริมสองของ 8 บิต: 1010102 และ 11112



สารละลาย:





3. ใช้เฉพาะวิธีเสริมของทั้งสองใน 8 บิตเพื่อลบเลขฐานสอง 11112 ออกจากเลขฐานสอง 1010102



สารละลาย:

101010 ในส่วนเสริมสองของ 8 บิตคือ 00101010
1111 ใน 8 บิตคือ 00001111
การแปลง 00001111 ทั้งหมดใน 8 บิตจะได้ 11110000
การบวก 1 ถึง 11110000 จะได้ 11110001
การลบส่วนเสริมของทั้งสองคือการบวกจำนวนบวกและลบของส่วนเสริมทั้งสองดังนี้:

การยกครั้งสุดท้ายของ 1 จะถูกโยนทิ้งไปในการลบส่วนเสริมของสอง

5. หาร 36,37510 ด้วย 100010 เป็นทศนิยมและไบนารี่ แล้วเปรียบเทียบผลลัพธ์

สารละลาย:

ใช้การแบ่งการคืนค่า
การหารทศนิยมในสี่:

คำตอบคือ 36 10 ที่เหลือ 375 10 .

36,375 10 จำนวนเต็มจะต้องถูกแปลงเป็นฐาน 2 ดังนี้:

อ่านเศษจากล่างสุด: 36,375 10 = 1000111000010111 2 .

1,000 10 จำนวนเต็มจะต้องถูกแปลงเป็นฐาน 2 ดังนี้:

อ่านเศษจากด้านล่าง: 1,000 10 = 1111101000 2 .

ต่อไป 1011000100110111 2 หาร 1111101000 2 โดยการแบ่งยาว (การแบ่งคืน) ตั้งแต่ 36,375 10 = 1011000100110111 2 และ 1,000 10 = 1111101000 2 (การหารไบนารี่เป็นสิบบิต):

การหารเริ่มต้นที่บิตที่ 11 ของเงินปันผล เนื่องจากเงินปันผล 10 บิตแรกน้อยกว่าตัวหาร คำตอบคือ 100100 2 ส่วนที่เหลือ 101110111 2 .

สำหรับการเปรียบเทียบผลลัพธ์ ควรแสดงว่าจำนวนเต็มของผลหารเท่ากันและเศษที่เหลือเท่ากัน นั่นหมายความว่าควรจะแสดงว่า 36 10 = 100100 2 และ 375 10 = 101110111 2 .

สำหรับส่วนจำนวนเต็ม:

สำหรับส่วนที่เหลือ:

6. ใช้ 8 บิตที่คุณเลือกเพื่อแสดงตรรกะ AND, OR, XOR, Invert, Shift Right, Shift Left, Rotate Right และ Rotate Left แต่ละไบต์ควรมีส่วนผสมของ 1 และ 0

สารละลาย:

  1. ก) เขียนโค้ดตัวเลขสำหรับอักขระ ASCII ที่เป็นศูนย์ในรูปแบบเลขฐานสิบหก เลขฐานสอง และเลขฐานสิบ
    b) เขียนรหัสตัวเลขสำหรับอักขระ ASCII ของ '1' ในเลขฐานสิบหก ไบนารี และทศนิยม
    c) เขียนรหัสตัวเลขสำหรับอักขระ ASCII ของ 'A' ในเลขฐานสิบหก ไบนารี และทศนิยม
    d) เขียนรหัสตัวเลขสำหรับอักขระ ASCII ของ 'a'' ในเลขฐานสิบหก ไบนารี และทศนิยม

สารละลาย:

ก) '0': 30, 00110000, 48
ข) '1': 31, 00110001, 49
ค) 'ก': 41, 001000001, 65
ง) 'ก': 61, 001100001, 97

8. แปลง 49.4910 เป็นฐานสอง. แปลงผลลัพธ์ของคุณเป็นรูปแบบจุดลอยตัว IEEE 32 บิต

สารละลาย:

แบบฟอร์ม 49.4910, 49 และ .49 จะถูกแปลงเป็นฐาน 2 ต่างกัน

การแปลง 49:

∴ 4910 = 1100012 อ่านจากด้านล่างของคอลัมน์สุดท้าย

การแปลง .49:

.49 x 2 = 0.98 บิตแรกคือ 0
.98 x 2 = 1.96 บิตที่สองคือ 1
.96 x 2 = 1.92 บิตที่สามคือ 1

∴ .49 10 = 110 2 อ่านจากด้านบนของคอลัมน์สุดท้าย

ดังนั้น 49.49 10 = 110001.110 2

110001.110 2 = 1.10001110 x 2 +5 ในรูปแบบมาตรฐานของฐานสอง

“1” ในผลลัพธ์ไม่ได้ระบุนัยสำคัญ 1.10001110 แต่ถือว่าอยู่ที่นั่น

สำหรับเลขชี้กำลัง 127 10 แสดงถึงศูนย์ ซึ่งหมายความว่าดัชนี (กำลัง) ของ 5 10 จาก 2 5 เพิ่มเป็น 127 แล้ว 10 . นั่นคือ:

127 10 + 5 10 = 132 10

132 10 ต้องแปลงเป็นฐาน 2 แล้วจึงใส่เข้าไปในช่องของเลขชี้กำลัง

ดังนั้น 132 10 = 10000100 2

10000100 2 มี 7 บิต เลขชี้กำลังคือแปดบิต 10000100 2 มีแปดบิต และมันก็ไม่เป็นไร

49.49 10 เป็นบวก ดังนั้นบิตเครื่องหมายจึงเป็น 0 ในรูปแบบจุดลอยตัว 32 บิต 49.49 10 = 110001.110 2 เป็น:

0 10000100 10001110000000000000000

  1. ก) รูปแบบจุดลอยตัวของ IEEE 64 บิตแตกต่างจากรูปแบบ 32 บิตอย่างไร
    b) ให้เหตุผลสองประการที่เกี่ยวข้องว่าทำไมรูปแบบ 64 บิตจึงถูกอธิบายว่ามีความแม่นยำสองเท่าหรือสูงกว่า 32 บิต

สารละลาย:

  1. – มี 64 บิตสำหรับแทนตัวเลข ไม่ใช่ 32
    – หลังจากบิตเครื่องหมาย จะมี 11 บิตสำหรับเลขชี้กำลัง
    – เลขชี้กำลังสำหรับดัชนีศูนย์ (2 0 ) คือ 1,023 10 = 01111111111 2 .
    – สิบเอ็ดบิตตามด้วย 52 บิตสำหรับนัยสำคัญที่ชัดเจน
    – มีช่วงตัวเลขที่กว้างกว่ารูปแบบ 32 บิต
  2. สาเหตุที่รูปแบบ 64 บิตถูกอธิบายว่ามีความแม่นยำเป็นสองเท่าหรือสูงกว่าเมื่อเปรียบเทียบกับรูปแบบ 32 บิตก็คือ ช่วงเวลาระหว่างเศษส่วนผสมสองค่าที่ติดกันซึ่งล้อมรอบด้วยจำนวนเต็มสองตัวติดต่อกันสำหรับรูปแบบ 64 บิต นั้นเล็กกว่าค่าที่สอดคล้องกัน ช่วงเวลารูปแบบ 32 บิต นอกจากนี้ ยังมีเศษส่วนแบบผสมที่เป็นไปได้มากกว่าจำนวนเต็มที่มีขอบเขตสองตัวสำหรับรูปแบบ 64 บิต มากกว่าที่มีในรูปแบบ 32 บิตตามลำดับ