Data Representation
การแทนข้อมูล
ข้อมูลที่เราเห็นเป็นตัวอักษรหรือภาพ ต้องมีวิธีแทนค่าในเครื่อง เริ่มจากหน่วยเล็ก แล้วค่อยดูรูปแบบที่ใช้จัดเก็บ
หัวข้อในบทนี้
ศัพท์ในบทนี้ · กดคำที่ขีดเส้นใต้ในเนื้อหาเพื่อดูความหมายได้ด้วย
- OS
- ระบบปฏิบัติการ จัดการทรัพยากรและให้บริการกับโปรแกรม
- MAC
- ที่อยู่ชั้นลิงก์ เช่น Ethernet ใช้ระบุผู้ส่งและผู้รับใน frame
บิตชุดเดียวกัน เปลี่ยนความหมายตามวิธีอ่าน
บิตเป็นค่า 0 หรือ 1 ที่ระบบแทนด้วยสภาวะทางกายภาพ ไบต์คือกลุ่ม 8 บิต แต่บิตไม่ได้บอกเองว่าเป็นตัวเลข ตัวอักษร หรือภาพ โปรแกรมต้องรู้รูปแบบที่จะอ่านก่อน เช่นไบต์ 01000001 ตีความเป็นจำนวนเต็มไม่มีเครื่องหมายได้ 65 และตีความตาม ASCII หรือ UTF-8 ได้ตัวอักษร A
- Binary integer
01000001 มีบิตน้ำหนัก 64 และ 1 ที่เป็น 1 ผลรวมจึงเป็น 65
- Hexadecimal
แบ่งเป็น 0100 และ 0001 ได้ 4 กับ 1 เขียน 0x41 เป็นค่าชุดเดิมในอีกรูปแบบ
- Text encoding
กติกา UTF-8 อ่าน 0x41 เป็น A ส่วน ก ใช้หลายไบต์ ไม่ใช่อักขระละไบต์เสมอ
- File format
ไฟล์ภาพต้องรู้โครงสร้างและวิธีถอดรหัส เปลี่ยนนามสกุลเป็น .txt ไม่ได้แปลงข้อมูลภาพ
| A | B | A AND B |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 0 |
| 1 | 0 | 0 |
| 1 | 1 | 1 |
AND ให้ 1 เมื่อ A และ B เป็น 1 ทั้งคู่ ผลทุกแถวจึงมี 1 แค่แถวสุดท้าย
1 และ 0 ในตารางเป็นค่าตรรกะ ไม่ใช่ค่า voltage ที่ต้องเท่ากันทุกวงจร XOR ที่เพิ่มให้เทียบหมายถึงจริงเมื่อสองค่าต่างกัน
Logic gate ทำงานกับค่าตรรกะ: AND เป็นจริงเมื่อทั้งสองอินพุตจริง OR เป็นจริงเมื่ออย่างน้อยหนึ่งอินพุตจริง และ NOT พลิกค่า Abstraction ช่วยให้แอปใช้ผลที่ซับซ้อนขึ้นโดยไม่ต้องเห็นวงจรทุกเกต การบีบอัดเปลี่ยนวิธีเก็บข้อมูล ไม่ใช่เปลี่ยนชื่อไฟล์หรือทำให้มันเป็นความลับ
บิตและเลขฐานสองBits and Binary · 01.2.1
บิตมีสองค่า 0 กับ 1 เลขฐานสองใช้ตำแหน่งหลักเป็นกำลังของสอง
ค่าตำแหน่งในเลขฐานสองเพิ่มสองเท่าทุกครั้งที่เลื่อนไปซ้าย หนึ่งไบต์มีแปดบิต จึงเลือกได้ 256 รูปแบบ เมื่ออ่านเป็นจำนวนเต็มไม่มีเครื่องหมายจะเป็น 0 ถึง 255
หน่วยที่มีค่า 0 หรือ 1
น้ำหนักของตำแหน่ง เช่น 8 หรือ 128
แปดบิตที่นำมาอ่านเป็นชุด
00001010 ใช้ตำแหน่ง 8 กับ 2 จึงมีค่า 10 ลองเปลี่ยนบิตในภาพแล้วดูว่าบิตน้ำหนัก 128 เปลี่ยนค่ามากกว่าบิตน้ำหนัก 1 อย่างไร
ค่าแต่ละตำแหน่งในเลขฐานสองเพิ่มเป็นสองเท่าเมื่อเลื่อนไปทางซ้าย เริ่มจาก 1, 2, 4, 8, 16, 32, 64, 128 สำหรับหนึ่งไบต์ การอ่าน 00001010 จึงเลือกเฉพาะตำแหน่งที่เป็น 1: 8 + 2 = 10 ไม่ได้เอาตัวเลขมาต่อกันเหมือนข้อความ
หนึ่งบิตเลือกได้สองค่า สองบิตเลือกได้สี่แบบ และแปดบิตเลือกได้ 256 แบบ ถ้าตีความเป็นจำนวนเต็มไม่มีเครื่องหมาย จะเป็น 0 ถึง 255 คำว่า 256 แบบจึงไม่ใช่ค่าสูงสุด 256 ลองกดบิตในภาพเพื่อเห็นว่าค่าตำแหน่งเปลี่ยนผลอย่างไร
8 + 2 = 10
ฐานสิบหก: 0A
ตัวอย่างตีความเป็นจำนวนเต็ม 8 บิตแบบไม่มีเครื่องหมาย
ที่มาของหัวข้อนี้ · 2 รายการ
คำอธิบายและภาพในหน้านี้เรียบเรียงใหม่ ชื่อบทต้นทางด้านล่างใช้ตรวจที่มา ไม่ได้แทนเนื้อหาที่คุณต้องไปอ่านเพิ่มเพื่อเข้าใจหน้านี้ และไม่ยืนยันว่าทุกประโยคมีอยู่ในคอร์ส
- Technical Support Fundamentals · Module 1: Introduction to ITVideo: BinaryIT1.M1.V10
- The Bits and Bytes of Computer Networking · Module 1: Introduction to NetworkingVideo: Moving Bits Across the WireIT2.M1.V9
ไบต์และหน่วยเก็บข้อมูลBytes and Storage Units · 01.2.5
หนึ่งไบต์มี 8 บิต ต้องแยกหน่วยบิตกับไบต์ และหน่วยฐานสิบกับฐานสอง
Byte มี 8 bits แต่ kB ใช้ 1,000 bytes ส่วน KiB ใช้ 1,024 bytes ต้องอ่านหน่วยของเครื่องมือให้ตรง ความจุไฟล์กับอัตราส่งข้อมูลเป็นคนละปริมาณ
หน่วยบิต
หนึ่งไบต์เท่ากับแปดบิต
บอกอัตราต่อวินาที
100 Mb/s หารแปดเป็น 12.5 MB/s ก่อนคิด overhead และคอขวดอื่น อินเทอร์เน็ต 100 Mb/s จึงไม่ใช่ดาวน์โหลด 100 MB ต่อวินาที
1 byte เท่ากับ 8 bits เสมอ แต่ kB กับ KiB ไม่ใช่หน่วยเดียวกัน: kB ใช้ 1,000 bytes ส่วน KiB ใช้ 1,024 bytes ตัวอักษร b กับ B มักใช้แยก bit กับ byte จึงต้องอ่านหน่วยที่ผู้ผลิตหรือเครื่องมือระบุ
100 Mb/s เมื่อหาร 8 ได้ 12.5 MB/s ในเชิงหน่วยก่อนคิด overhead และข้อจำกัดจริง จึงไม่ควรคาดว่าลิงก์ 100 Mb/s จะดาวน์โหลดได้ 100 MB ทุกวินาที หน่วยความจุกับอัตราการส่งข้อมูลตอบคนละคำถามด้วย
ที่มาของหัวข้อนี้ · 1 รายการ
คำอธิบายและภาพในหน้านี้เรียบเรียงใหม่ ชื่อบทต้นทางด้านล่างใช้ตรวจที่มา ไม่ได้แทนเนื้อหาที่คุณต้องไปอ่านเพิ่มเพื่อเข้าใจหน้านี้ และไม่ยืนยันว่าทุกประโยคมีอยู่ในคอร์ส
- Technical Support Fundamentals · Module 2: HardwareReading: Supplemental Reading for Data StorageIT1.M2.R4
เลขฐานสิบหกHexadecimal · 01.2.6
ฐานสิบหกใช้ 0–9 และ A–F หนึ่งหลักแทนได้ 4 บิต จึงเขียนค่าฐานสองได้สั้นลง
ฐานสิบหกใช้ 0–9 และ A–F แทน 16 ค่า หนึ่งหลักตรงกับสี่บิต จึงใช้สองหลักแทนหนึ่งไบต์ได้สั้นและอ่านง่ายขึ้น ค่าที่แทนยังเหมือนเดิม
เขียนค่าด้วย 0 และ 1
เขียนค่าเดียวกันด้วย 16 สัญลักษณ์
สัญญาณว่าตัวเลขใช้ฐานสิบหก
01000001 แบ่งเป็น 0100 กับ 0001 จึงเขียน 41 หรือ 0x41 ได้ การใช้ hex ใน หรือไฟล์จับข้อมูลไม่ได้เข้ารหัสให้เป็นความลับ
ฐานสิบหกใช้ 16 สัญลักษณ์: 0 ถึง 9 และ A ถึง F ซึ่งแทนค่า 10 ถึง 15 เพราะหนึ่งหลักเลือกได้ 16 แบบ จึงตรงกับ 4 บิตพอดี เช่น 1010 เป็น A และ 1111 เป็น F
หนึ่งไบต์เขียนสั้นเป็นสองหลักได้ เช่น 01000001 คือ 0x41 คำนำหน้า 0x เป็นวิธีบอกฐานในหลายบริบท ไม่ใช่ส่วนของค่า Hex จึงสะดวกสำหรับดูไบต์ MAC address สี หรือข้อมูลใน packet แต่ไม่ได้เข้ารหัสให้เป็นความลับ
ที่มาของหัวข้อนี้ · คำอธิบายต่อยอด
คำอธิบายและภาพในหน้านี้เรียบเรียงใหม่ ชื่อบทต้นทางด้านล่างใช้ตรวจที่มา ไม่ได้แทนเนื้อหาที่คุณต้องไปอ่านเพิ่มเพื่อเข้าใจหน้านี้ และไม่ยืนยันว่าทุกประโยคมีอยู่ในคอร์ส
เป็นส่วนต่อยอดที่เขียนเพื่อเชื่อมความเข้าใจ ไม่มีชื่อ Video/Reading เฉพาะที่ยืนยันจาก inventory เดิม
ลอจิกเกตLogic Gates · 01.2.3
Logic gate ทำงานตามกติกา เช่น AND ให้ผลจริงเมื่ออินพุตทุกตัวจริง
Logic gates ใช้กติกากับอินพุตที่มีสองค่า AND ต้องจริงทั้งคู่ OR ต้องจริงอย่างน้อยหนึ่งตัว NOT พลิกค่า การประกอบกฎเล็กเหล่านี้ทำให้สร้างวงจรและเงื่อนไขซับซ้อนขึ้น
1 เมื่อทั้งสองอินพุตเป็น 1
1 เมื่อมีอย่างน้อยหนึ่งอินพุตเป็น 1
พลิก 0 กับ 1
อนุญาตเมื่อบัญชียังใช้งาน AND มีสิทธิ์ หมายถึงต้องผ่านสองเงื่อนไข ถ้าใช้ OR คนที่ไม่ผ่านหนึ่งเงื่อนไขอาจยังได้รับอนุญาต จึงต้องลองทุกชุดอินพุต
AND ให้ 1 เมื่ออินพุตทั้งสองเป็น 1 OR ให้ 1 เมื่ออย่างน้อยหนึ่งอินพุตเป็น 1 NOT พลิกค่า 0 เป็น 1 และ 1 เป็น 0 การต่อกฎเล็ก ๆ เหล่านี้ทำให้สร้างวงจรที่ทำงานซับซ้อนขึ้นได้
คำว่า true และ false ในโปรแกรมเกี่ยวกับตรรกะ แต่ไม่ควรถือว่าทุกภาษาจัดค่าทุกชนิดเหมือนกัน การคิดเงื่อนไขควรลองครบทุกกรณีก่อน เช่นอนุญาตเมื่อบัญชียัง active AND มีสิทธิ์ ไม่ใช่ผ่านเพียงข้อใดข้อหนึ่ง
| A | B | A AND B | A OR B |
|---|---|---|---|
| 0 | 0 | 0 | 0 |
| 0 | 1 | 0 | 1 |
| 1 | 0 | 0 | 1 |
| 1 | 1 | 1 | 1 |
ที่มาของหัวข้อนี้ · 1 รายการ
คำอธิบายและภาพในหน้านี้เรียบเรียงใหม่ ชื่อบทต้นทางด้านล่างใช้ตรวจที่มา ไม่ได้แทนเนื้อหาที่คุณต้องไปอ่านเพิ่มเพื่อเข้าใจหน้านี้ และไม่ยืนยันว่าทุกประโยคมีอยู่ในคอร์ส
- Technical Support Fundamentals · Module 1: Introduction to ITReading: Supplemental Reading on Logic GatesIT1.M1.R3
การแทนตัวอักษรCharacter Encoding · 01.2.2
Encoding กำหนดวิธีแทนตัวอักษรด้วยค่าดิจิทัล จึงต้องอ่านและเขียนด้วยรูปแบบที่เข้ากัน
Unicode กำหนดรหัสอักขระ ส่วน UTF-8 กำหนดวิธีเขียนรหัสเป็นไบต์ ตัวอักษรจึงไม่จำเป็นต้องใช้หนึ่งไบต์ การแสดงข้อความต้องใช้กติกาที่เข้ากันระหว่างผู้เขียนและผู้อ่าน
สิ่งที่ต้องการแสดง เช่น ก
รหัสที่ระบุอักขระ
รูปแบบไบต์ที่ใช้เก็บรหัสนั้น
A ใช้ไบต์ 41 ในฐานสิบหก แต่ ก ใช้ E0 B8 81 ใน UTF-8 ถ้าเปิดด้วย encoding ผิด ข้อความอาจเพี้ยนทั้งที่ไบต์เดิมยังอยู่ ก่อนบันทึกทับควรเก็บต้นฉบับไว้
Unicode กำหนดรหัสอักขระ ส่วน UTF-8 กำหนดวิธีเขียนรหัสเหล่านั้นเป็นไบต์ ตัวอย่าง A เป็น U+0041 ใช้ไบต์ 41 ในฐานสิบหก ขณะที่ ก เป็น U+0E01 ใช้ E0 B8 81 จึงไม่ควรใช้จำนวนอักขระที่มองเห็นเป็นจำนวนไบต์ของไฟล์
เมื่อข้อความเพี้ยน ให้แยกไฟล์ต้นทาง โปรแกรมที่เขียน และโปรแกรมที่อ่าน หากไบต์ถูกอ่านด้วยกติกาผิด ความหมายอาจเพี้ยนทั้งที่ข้อมูลยังอยู่ การ save ทับหลังอ่านผิดอาจทำให้ข้อมูลเดิมเปลี่ยนจริง ควรดูสำเนาหรือค่าที่ใช้เขียนก่อนแก้
ที่มาของหัวข้อนี้ · 1 รายการ
คำอธิบายและภาพในหน้านี้เรียบเรียงใหม่ ชื่อบทต้นทางด้านล่างใช้ตรวจที่มา ไม่ได้แทนเนื้อหาที่คุณต้องไปอ่านเพิ่มเพื่อเข้าใจหน้านี้ และไม่ยืนยันว่าทุกประโยคมีอยู่ในคอร์ส
- Technical Support Fundamentals · Module 1: Introduction to ITVideo: Character EncodingIT1.M1.V9
ชนิดและนามสกุลไฟล์File Types and Extensions · 01.2.7
นามสกุลช่วยระบุชนิดไฟล์โดยทั่วไป แต่เปลี่ยนชื่อท้ายไม่ได้แปลงข้อมูลภายใน
นามสกุลเป็นส่วนชื่อที่ช่วยเลือกโปรแกรมเปิด แต่รูปแบบข้อมูลจริงอยู่ภายใน File association คือการจับชนิดไฟล์กับแอปที่ใช้เปิด ไฟล์จึงอาจเปิดผิดโปรแกรมโดยไม่เสีย
ชื่อท้ายที่ช่วยระบุชนิดโดยทั่วไป
โครงสร้างข้อมูลภายในไฟล์
แอปที่ระบบเลือกใช้เปิด
เปลี่ยน photo.jpg เป็น photo.txt ไม่ได้แปลงภาพเป็นข้อความ ถ้าเปิดไม่ขึ้นต้องดูรูปแบบ แอป และชื่อเต็ม ก่อนสรุปว่าไฟล์เสียหรือส่งกลับไปให้คนสร้างใหม่
นามสกุล เช่น .txt .png หรือ .exe เป็นส่วนของชื่อที่ช่วยบอกชนิดโดยทั่วไป แต่รูปแบบภายในไฟล์และโปรแกรมที่อ่านมีความสำคัญด้วย Rename photo.jpg เป็น photo.txt ไม่ได้แปลงภาพเป็นข้อความ
File association คือการจับชนิดหรือชื่อเข้ากับโปรแกรมที่เปิด การดับเบิลคลิกผิดแอปจึงไม่ยืนยันว่าไฟล์เสีย และการซ่อนนามสกุลอาจทำให้มองไม่เห็นชื่อเต็ม ควรตรวจชื่อเต็มและแหล่งไฟล์ก่อนเปิดสิ่งที่ไม่รู้จัก
ที่มาของหัวข้อนี้ · 1 รายการ
คำอธิบายและภาพในหน้านี้เรียบเรียงใหม่ ชื่อบทต้นทางด้านล่างใช้ตรวจที่มา ไม่ได้แทนเนื้อหาที่คุณต้องไปอ่านเพิ่มเพื่อเข้าใจหน้านี้ และไม่ยืนยันว่าทุกประโยคมีอยู่ในคอร์ส
- Technical Support Fundamentals · Module 3: Operating SystemVideo: Files and File SystemsIT1.M3.V3
การบีบอัดข้อมูลCompression · 01.2.8
การบีบอัดลดขนาดข้อมูล แบบ lossless คืนข้อมูลเดิมได้ ส่วน lossy ยอมทิ้งบางรายละเอียด
Lossless compression คืนข้อมูลเดิมได้ ส่วน lossy ยอมทิ้งรายละเอียดตามวิธีที่ใช้ Archive รวมไฟล์และโครงสร้างและอาจบีบอัดหรือไม่บีบอัดก็ได้
รวมรายการและโครงสร้างไฟล์
ลดขนาดแล้วคืนข้อมูลเดิมได้
ลดขนาดโดยยอมเสียบางรายละเอียด
ข้อความที่ต้องคืนทุกไบต์ควรใช้วิธี lossless ภาพที่บีบอัดอยู่แล้วอาจเล็กลงน้อยเมื่อ zip และ backup ที่บีบอัดต้องเผื่อเวลาและพื้นที่ตอนแตกกลับด้วย
Lossless compression ลดขนาดโดยยังคืนข้อมูลเดิมได้ เช่นไฟล์ข้อความใน archive แบบที่รองรับ ส่วน lossy ยอมทิ้งบางรายละเอียดตามวิธีที่ใช้กับภาพหรือเสียง ต้องเลือกตามว่าข้อมูลต้องคืนเหมือนเดิมทุกไบต์หรือไม่
Archive คือการรวมไฟล์กับโครงสร้าง ไม่จำเป็นต้องบีบอัดเสมอ และข้อมูลที่ถูกบีบอัดอยู่แล้วอาจเล็กลงได้น้อย การ backup ที่บีบอัดยังต้องใช้เวลาและพื้นที่ตอนแตกกลับ Transcript สำรองข้อมูลอธิบายผลข้อนี้ แต่ไม่ได้ลงอัลกอริทึมบีบอัดทุกชนิด
ที่มาของหัวข้อนี้ · 2 รายการ
คำอธิบายและภาพในหน้านี้เรียบเรียงใหม่ ชื่อบทต้นทางด้านล่างใช้ตรวจที่มา ไม่ได้แทนเนื้อหาที่คุณต้องไปอ่านเพิ่มเพื่อเข้าใจหน้านี้ และไม่ยืนยันว่าทุกประโยคมีอยู่ในคอร์ส
- Operating Systems and You: Becoming a Power User · Module 3: Package and Software ManagementReading: Supplemental Reading for 7-Zip and PowerShell ZipsIT3.M3.R5
- Operating Systems and You: Becoming a Power User · Module 3: Package and Software ManagementVideo: Windows: ArchivesIT3.M3.V5
การซ่อนรายละเอียดAbstraction · 01.2.4
Abstraction ซ่อนรายละเอียดให้ใช้ผ่านส่วนติดต่อ เช่น ปุ่มบันทึกแทนการจัดการดิสก์เอง
Abstraction ซ่อนรายละเอียดไว้หลังส่วนติดต่อที่ใช้ง่าย เช่นแอปขอบันทึกไฟล์จาก แทนการเลือกตำแหน่งบนดิสก์เอง สิ่งที่ซ่อนยังทำงานอยู่และยังเป็นสาเหตุของ error ได้
สิ่งที่ผู้ใช้หรือโปรแกรมเรียกใช้
กลไกภายในที่ถูกซ่อน
ข้อตกลงว่าส่วนติดต่อทำอะไรให้
ปุ่ม Save ใช้งานง่าย แต่ถ้าพื้นที่เต็มหรือสิทธิ์ไม่พอคำขอจะล้มเหลว การแก้ปัญหาจึงค่อยย้อนผ่านชั้นที่ซ่อนอยู่ ไม่ใช่คิดว่าปุ่มคือทุกส่วนของระบบ
Abstraction ให้เราใช้สิ่งหนึ่งผ่านส่วนติดต่อที่ง่ายกว่าโดยซ่อนรายละเอียด เช่นกดบันทึกแทนการเลือก sector บนดิสก์เอง การซ่อนนี้ทำให้คนกับโปรแกรมแต่ละส่วนพึ่งข้อตกลงร่วมกันได้โดยไม่ต้องรู้ภายในทั้งหมด
เวลา troubleshooting ต้องรู้ว่าใต้ส่วนติดต่อยังมีชั้นอื่น ปุ่มบันทึกส่งคำขอได้แต่ดิสก์เต็มหรือสิทธิ์ไม่พอก็ยังล้มเหลว ต้องค่อยย้อนจากสิ่งที่ผู้ใช้เห็นไปยังชั้นที่ให้บริการ
ที่มาของหัวข้อนี้ · 1 รายการ
คำอธิบายและภาพในหน้านี้เรียบเรียงใหม่ ชื่อบทต้นทางด้านล่างใช้ตรวจที่มา ไม่ได้แทนเนื้อหาที่คุณต้องไปอ่านเพิ่มเพื่อเข้าใจหน้านี้ และไม่ยืนยันว่าทุกประโยคมีอยู่ในคอร์ส
- Technical Support Fundamentals · Module 1: Introduction to ITVideo: AbstractionIT1.M1.V12
นำศัพท์มาเชื่อมกับงาน
ไฟล์ภาษาไทยอ่านเป็นตัวประหลาดอาจเกิดจาก encoding ไม่ตรงกัน ไม่ใช่เพราะข้อความต้นฉบับหาย
สิ่งที่บทนี้เชื่อมไว้
ข้อมูลที่เราเห็นเป็นตัวอักษรหรือภาพ ต้องมีวิธีแทนค่าในเครื่อง เริ่มจากหน่วยเล็ก แล้วค่อยดูรูปแบบที่ใช้จัดเก็บ
ใช้ภาพกับตัวอย่างด้านบนเชื่อมหน้าที่ของแต่ละส่วน แล้วตรวจความเข้าใจด้วยการอธิบายเหตุผลของผลที่เห็น ก่อนเปิดบทถัดไป
บทเรียนที่เกี่ยวข้องและที่มาของบทอ่าน
transcript ที่เคยใช้ตรวจแนวคิดพื้นฐานและตัวอย่างบางส่วน: T0312 · 1.Technical Support Fundamentals · T0403 · 2.The Bits and Bytes of Computer Networking คำอธิบายเป็นการเขียนใหม่ ไม่ใช่การแปลครบทุกประโยค ภาพและตัวอย่างเป็นการเรียบเรียงเพื่อเชื่อมความเข้าใจ
คำอธิบายหน้านี้เขียนใหม่ตามหัวข้อใน Atlas รายการด้านล่างเป็นชื่อ Video/Reading ที่เคยจับคู่ไว้ แสดงไว้ให้ตรวจที่มาของชื่อหัวข้อ และไม่รับรองว่าคอร์สสอนทุกส่วนของคำอธิบายนี้