ยังอยู่ในเรื่องของการ เก็บข้อมูลลงในคอมพิวเตอร์ ซึ่งสัปดาห์นี้มาเจาะมากขึ้น โดยเขียนโปรแกรมช่วยคำนวณตรวจสอบดูว่า เครื่องคอมพิวเตอร์แต่ล่ะเครื่องนั้นเก็บข้อมูลแบบ Big Endian หรือ Little Endian
ตัวอย่างที่ควิซในห้องเรียน
จะเก็บ 7.25 ลงในเครื่องคอมพิวเตอร์ 64 bit แบบ Big Endian และ Little Endian อย่างไร?
จากตารางที่แล้ว การเก็บแบบ 64 bit นั้น มีรายละเอียดดังนี้
Sing =1 bit
Exp = 11 bit
Singnificant = 52 bit
Bias = 1023 bit
เราจะมาหาค่าของ [Sing] [ Exp] [Singnificant] กัน
ซึ่ง ค่า[Sing] = 0 เพราะ 7.25 เป็นค่าบวก
จากนั้นหาค่า [ Exp] [Singnificant]
จากกระบวนการแปลงเลขของสัปดาห์ที่แล้ว จะได้ว่า
7.25 = 111.01
จากนั้นทำการเลื่อนจุดไปที่หลังเลขเลข 1 ตามกฏของการเก็บค่าแบบ Mendesa จะได้ดังนี้
จาก 111.01 => 1.1101 x 2^2 // ^ เป็นเครื่องหมายยกกำลัง //
Exp = 1023+2 = 1025 แล้วแปลง 1025 เป็นฐาน2
1025 = 1000 0000 001
1025 = 1000 0000 001
ดังนั้น [ Exp] = 1000 0000 001
หาค่า [Singnificant] โดยเอาค่าหลังจุดมา ให้ได้ 52 bit
จาก 1.1101 เราจะเก็บ หลังจุดไป จะได้
จาก 1.1101 เราจะเก็บ หลังจุดไป จะได้
1101 0000... ( เพิ่ม 0 ไป 48 ตัว เพราะ 52 - 4 = 48)
เขียนแพคเป็นข้อมูล จะได้
เขียนแพคเป็นข้อมูล จะได้
[Sing] [ Exp] [Singnificant]
[0][1000 0000 001][1101 0...(0 มี 48 ตัว)]
เรียงข้อมูล จะได้
0100 0000 0001 1101 0... ( 0 48 ตัว)
ทำเป็น Byte จะได้ดังนี้ // 1 byte = 8 bit//
0100 0000 = 64
0001 1101 = 29
0001 1101 = 29
0000 0000 = 0
0000 0000 = 0
0000 0000 = 0
0000 0000 = 0
0000 0000 = 0
0000 0000 = 0
เพราะฉะนั้น ข้อมูลเมื่อเรียงแบบ Big Endian จะได้
64 29 0 0 0 0 0 0
เมื่อเรียงแบบ Little Endian จะได้
0 0 0 0 0 0 29 64
กรณี ได้ข้อมูลมาเป็น 0100 0000 0001 1101 0... ( 0 48 ตัว)
เราก็ทำการคิดย้อนกลับ โดยให้ bit แรก เป็นเครื่องหมาย แล้วbit ถัดมาจะเป็น Exponent และbit ถัดมาก็จะเป็น Singnificant ซึ่งแต่ล่ะค่านั้น จำนวนbitจะขึ้นอยู่กับว่าเก็บข้อมูลแบบกี่บิต
พอแยกเลขออกเป็นbitของแต่ล่ะอย่างได้แล้วก็ทำการแปลงให้เป็นเลขจำนวนจริง
64 29 0 0 0 0 0 0
เมื่อเรียงแบบ Little Endian จะได้
0 0 0 0 0 0 29 64
กรณี ได้ข้อมูลมาเป็น 0100 0000 0001 1101 0... ( 0 48 ตัว)
เราก็ทำการคิดย้อนกลับ โดยให้ bit แรก เป็นเครื่องหมาย แล้วbit ถัดมาจะเป็น Exponent และbit ถัดมาก็จะเป็น Singnificant ซึ่งแต่ล่ะค่านั้น จำนวนbitจะขึ้นอยู่กับว่าเก็บข้อมูลแบบกี่บิต
พอแยกเลขออกเป็นbitของแต่ล่ะอย่างได้แล้วก็ทำการแปลงให้เป็นเลขจำนวนจริง