คอมพิวเตอร์ทำงานด้วยหลักการทางอิเล็กทรอนิกส์ที่ใช้สัญญาณทางไฟฟ้าแทนตัวเลขศูนย์และหนึ่ง ซึ่งเป็นตัวเลขในระบบเลขฐานสอง แต่ละหลักเรียกว่าบิต (binary digit : bit) และเมื่อนำตัวเลขหลายๆ บิตมาเรียงกัน จะใช้สร้างรหัสแทนจำนวน อักขระหรือสัญลักษณ์ทั้งภาษาไทยและภาษาอังกฤษได้ และเพื่อให้การแลกเปลี่ยนข้อความระหว่างมนุษย์กับคอมพิวเตอร์เป็นไปในแนวเดียวกัน จึงมีการกำหนดมาตรฐานรหัสแทนข้อมูลในระบบเลขฐานสองขึ้น โดยรหัสมาตรฐานที่นิยมใช้กันมากมีสองกลุ่ม คือ รหัสแอสกีและรหัสเอ็บซิดิก
| 2.3.1 ระบบเลขฐานสอง ในชีวิตประจำวันของมนุษย์ต้องได้พบเจอกับจำนวนและการคำนวณอยู่ทุกวัน หากเราสังเกตจะพบว่าจำนวนที่เราคุ้นเคยอยู่ทุกวันนั้นไม่ว่าจะเป็นการซื้อของเป็นเงิน 39,587 บาท จำนวนเงินฝากในธนาคาร 1,426,000 บาท หรือจำนวนในใบแจ้งหนี้ค่าโทรศัพท์จำนวน 2,560 บาท ล้วนแล้วแต่ประกอบขึ้นจากตัวเลข 10 ตัว คือ 0,1,2,3,4,5,6,7,8 และ9 ทั้งสิ้น ตัวเลขทั้ง 10 ตัวนี้ถือได้ว่าเป็นเครื่องมือที่ช่วยในการนับจำนวนของมนุษย์ การที่มนุษย์เลือกเลข 10 ตัวในการแทนการนับ อาจเนื่องจากมนุษย์มีนิ้วมือที่สามารถใช้เป็นอุปกรณ์ช่วยนับได้เพียง 10 นิ้ว จึงกำหนดระบบตัวเลขนี้ขึ้นมาและเรียกว่า ระบบเลขฐานสิบ (decimal) | |||||
| ต่อมาเมื่อมีการใช้งานคอมพิวเตอร์ซึ่งเป็นอุปกรณ์อิเล็กทรอนิกส์ที่ทำงาน แบบ ดิจิทัลและใช้ระดับแรงดันไฟฟ้าแสดงสถานะเพียง 2 สถานะ คือ ปิด (แทนด้วย 0) และเปิด (แทนด้วย 1) | |||||
หรืออาจกล่าวได้ว่าเครื่องคอมพิวเตอร์รู้จักตัวเลขเพียง 2 ตัวเท่านั้น คือ 0 และ 1 หากมนุษย์ต้องการใช้คอมพิวเตอร์เป็นเครื่องมือช่วยทำงาน มนุษย์ต้องเรียนรู้ระบบเลขที่ประกอบด้วยตัวเลขเพียง 2 ตัวเช่นกัน จึงได้มีการคิดค้นระบบเลขฐานสอง (binary) ขึ้นเพื่อช่วยในการสื่อสารกับเครื่องคอมพิวเตอร์ โดยระบบเลขฐานสองเป็นระบบตัวเลขที่ประกอบด้วยตัวเลขเพียง 2 ตัว คือ 0 และ 1 เท่านั้น ตัวอย่างเลขฐานสอง เช่น 1102 , 101102 | |||||
จากที่กล่าวมาข้างต้น จะเห็นว่าการเขียนเลขฐานสอง ฐานแปดและฐานสิบหกนั้น มักจะเขียนตัวเลข 2 8 และ 16 กำกับอยู่ที่ตัวสุดท้าย ทั้งนี้เพื่อป้องกันความสับสน เช่น 8743 หากเราไม่เขียนตัวเลขกำกับไว้ ตัวเลขนี้อาจเป็นเลขฐาน 10 หรือฐาน 16 ก็ได้เราก็จะไม่ทราบว่าตัวเลขที่เขียนนั้นเป็นเลขฐานใด
ารางด้านล่างนี้เป็นตารางแสดงค่าของตัวเลขในระบบเลขฐานทั้งสี่ระบบที่กล่าวถึงข้างต้น
ตารางแสดงรูปแบบของเลขในฐานสอง ฐานสิบ ฐานแปด และฐานสิบหก | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
(1) การแปลงเลขฐานสิบเป็นฐานสอง
คำศัพท์ที่จำเป็นต้องทำความรู้จักเพื่อให้เข้าใจตรงกันในการดำเนินการต่างๆ ในระบบเลขฐานสองมีดังนี้
(ก) บิต (bit) คือหลักแต่ละหลักในระบบเลขฐานสอง เช่น 1102 ประกอบด้วย 3 บิต
(ข) บิตที่มีนัยสำคัญสูงสุด (most significant bit : MSB) คือบิตที่อยู่ซ้ายมือสุดเป็นบิตที่มีค่าประจำหลักมากที่สุด เช่น 1002 บิตที่มีนัยสำคัญสูงสุดคือ 1 มีค่าประจำหลักเป็น 22
(ค) บิตที่มีนัยสำคัญต่ำสุด (least significant bit : LSB) คือบิตที่อยู่ขวามือสุดซึ่งเป็นบิตที่มีค่าประจำหลักน้อยที่สุดเช่น 1102 บิตที่มีนัยสำคัญต่ำสุดคือ 0 มีค่าประจำหลักเป็น 20 ให้สังเกตว่าค่าประจำหลักของบิตที่มีนัยสำคัญต่ำสุดจะมีค่าเป็น 20 เสมอ
การแปลงเลขฐานสิบให้เป็นฐานสองนั้นเราอาจใช้วิธีการหาร โดยให้ตัวเลขฐานสิบเป็นตัวตั้ง แล้วหารด้วยเลข 2 ไปเรื่อยๆ จนกระทั่งผลหารเป็น 0 และในการหารแต่ละครั้งต้องเขียนเศษที่ได้จากการหารไว้ หลังจากที่หารจนผลหารเป็น 0 เราจะได้เลขฐานสองที่มีค่าเท่ากับเลขฐานสิบที่เป็นตัวตั้งโดยการเขียนเศษที่ได้จากการหารแต่ละครั้งจากล่างขึ้นบน
คำศัพท์ที่จำเป็นต้องทำความรู้จักเพื่อให้เข้าใจตรงกันในการดำเนินการต่างๆ ในระบบเลขฐานสองมีดังนี้
(ก) บิต (bit) คือหลักแต่ละหลักในระบบเลขฐานสอง เช่น 1102 ประกอบด้วย 3 บิต
(ข) บิตที่มีนัยสำคัญสูงสุด (most significant bit : MSB) คือบิตที่อยู่ซ้ายมือสุดเป็นบิตที่มีค่าประจำหลักมากที่สุด เช่น 1002 บิตที่มีนัยสำคัญสูงสุดคือ 1 มีค่าประจำหลักเป็น 22
(ค) บิตที่มีนัยสำคัญต่ำสุด (least significant bit : LSB) คือบิตที่อยู่ขวามือสุดซึ่งเป็นบิตที่มีค่าประจำหลักน้อยที่สุดเช่น 1102 บิตที่มีนัยสำคัญต่ำสุดคือ 0 มีค่าประจำหลักเป็น 20 ให้สังเกตว่าค่าประจำหลักของบิตที่มีนัยสำคัญต่ำสุดจะมีค่าเป็น 20 เสมอ
การแปลงเลขฐานสิบให้เป็นฐานสองนั้นเราอาจใช้วิธีการหาร โดยให้ตัวเลขฐานสิบเป็นตัวตั้ง แล้วหารด้วยเลข 2 ไปเรื่อยๆ จนกระทั่งผลหารเป็น 0 และในการหารแต่ละครั้งต้องเขียนเศษที่ได้จากการหารไว้ หลังจากที่หารจนผลหารเป็น 0 เราจะได้เลขฐานสองที่มีค่าเท่ากับเลขฐานสิบที่เป็นตัวตั้งโดยการเขียนเศษที่ได้จากการหารแต่ละครั้งจากล่างขึ้นบน
แสดงการแปลง 29 ซึ่งเป็นเลขฐานสิบให้อยู่ในรูปเลขฐานสอง
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
วิธีทำ
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| (4) การลบเลขฐานสอง | |||||||||
การลบเลขฐานสองก็เช่นเดียวกับการลบเลขฐานสิบ คือพิจารณาเอาเลขที่เป็นตัวตั้งลบด้วยตัวลบทีละหลัก หากตัวตั้งเป็น 1 ตัวลบเป็น 0 ผลลัพธ์ได้เป็น 1 แต่ถ้าตัวตั้งเป็น 0 และตัวลบเป็น 1 ต้องมีการดึงค่าในหลักที่อยู่ทางซ้ายมาได้ผลลัพธ์เป็น 1 และมีผลให้ค่าของหลักที่ถูกดึงมามีค่าเป็น 0 ดังตัวอย่างต่อไปนี้ ตัวอย่างที่ 1 แสดงการหาค่า 10011 - 1010 | |||||||||
![]() |
| ||||||||
| ตัวอย่างที่ 2.8 แสดงการหาค่า 11001 - 1111 | ||||||||||
![]() |
| |||||||||
| เมื่อมนุษย์สามารถแปลงเลขฐานสิบเป็นฐานสอง และแปลงเลขฐานสองกลับเป็น เลขฐานสิบได้ ก็สามารถเขียนโปรแกรมเพื่อสั่งการคอมพิวเตอร์ทำงานได้ตามที่ต้องการ และพัฒนาวิธีการในการสื่อสารหรือสั่งการคอมพิวเตอร์มาเรื่อยๆ จนในปัจจุบันผู้ใช้คอมพิวเตอร์ทั่วไปอาจไม่ต้องทำความเข้าใจการทำงานของคอมพิวเตอร์อย่างลึกซึ้งเช่นนี้ เนื่องจากมีบุคลากรที่ทำหน้าที่คิดค้นโปรแกรมที่สามารรับข้อความ หรือคำสั่งในรูปแบบของภาษาและระบบตัวเลขที่ผู้ใช้คุ้นเคย แล้วแปลความหมายเป็นเลขฐานสองก่อนส่งให้เครื่องคอมพิวเตอร์ประมวลผล | ||||||||||
(1) รหัสแอสกี (American Standard Code Information Interchange :ASCII) เป็นมาตรฐานที่นิยมใช้กันมากในระบบคอมพิวเตอร์และระบบสื่อสารข้อมูล รหัสแทนข้อมูลชนิดนี้ใช้เลขฐานสองจำนวน 8 บิตหรือเท่ากับ 1 ไบต์แทนอักขระหรือสัญลักษณ์แต่ละตัว ซึ่ง หมายความว่าการแทนอักขระแต่ละตัวจะประกอบด้วยตัวเลขฐานสอง 8 บิตเรียงกัน ซึ่งลำดับของแต่ละบิตเป็นดังนี้
| |||
![]() | |||
และตัวอย่างรหัสแทนข้อมูล เช่น
![]() | |||
| จากหลักการของระบบเลขฐานสอง แต่ละบิตสามารถแทนค่าได้ 2 แบบ คือ เลข 0 หรือเลข 1 ถ้าเราเขียนเลขฐานสองเรียงกัน 2 บิตในการแทนอักขระ เราจะมีรูปแบบในการแทนอักขระได้ 22 หรือ 4 รูปแบบ คือ 00 , 01 , 10 และ11 ดังนั้นในการใช้รหัสแอสกีซึ่งมี 8 บิตในการแทนอักขระแล้ว เราจะมีรูปแบบที่ใช้แทนได้ถึง 28 หรือ 256 รูปแบบ ซึ่งเมื่อใช้แทนตัวอักษรภาษาอังกฤษแล้วยังมีเหลืออยู่ สำนักงานมาตรฐานผลิตภัณฑ์อุตสาหกรรม หรือ สมอ. จึงได้กำหนดรหัสภาษาไทยเพิ่มลงไปเพื่อให้ใช้งานร่วมกัน ตามตารางแสดงรหัส ASCII | |||
| (2) รหัสเอ็บซิดิก (Extended Binary Coded Decimal Interchange Code : EBCDIC) พัฒนาโดยบริษัทไอบีเอ็ม รหัสแทนข้อมูลนี้ไม่เป็นที่นิยมใช้แล้วในปัจจุบัน การกำหนดรหัสจะใช้ 8 บิต ต่อหนึ่งอักขระ เหมือนกับรหัสแอสกี แต่แบบของรหัสที่กำหนดจะแตกต่างกัน โดยรหัสเอ็บซิดิกจะเรียงลำดับแต่ละบิตที่ใช้แทนอักขระดังนี้ | |||
![]() | |||
| รหัสแบบเอ็บซีดิก ก็สามารถใช้กำหนดให้กับอักษรภาษาไทยและเครื่องหมายอื่นๆ ได้เช่นเดียวกัน ตัวอย่างรหัสแทนข้อมูลแบบเอ็บซีดิก | |||
![]()
(3) รหัสยูนิโค้ด (Unicode) เป็นรหัสที่สร้างขึ้นมาในระยะหลังที่มีการสร้างแบบตัวอักษรของภาษาต่างๆ รหัสยูนิโค้ดเป็นรหัสที่ต่างจาก 2 ชนิดที่ได้กล่าวมาข้างต้น คือใช้เลขฐานสอง 16 บิตในการแทนตัวอักษร เนื่องจากที่มาของการคิดค้นรหัสชนิดนี้ คือ เมื่อมีการใช้งานคอมพิวเตอร์ในหลายประเทศและมีการสร้างแบบตัวอักษร (font) ของภาษาต่างๆ ทั่วโลก ในบางภาษาเช่น ภาษาจีน และภาษาญี่ปุ่น เป็นภาษาที่เรียกว่าภาษารูปภาพซึ่งมีตัวอักษรเป็นหมื่นตัว หากใช้รหัสที่เป็นเลขฐานสอง 8 บิต เราสามารถแทนรูปแบบตัวอักษรได้เพียง 256 รูปแบบที่ได้อธิบายมาข้างต้น ซึ่งไม่สามารถแทนตัวอักษรได้ครบ จึงสร้างรหัสใหม่ขึ้นมาที่สามารถแทนตัวอักขระได้ถึง 65,536 ตัว ซึ่งมากพอและสามารถแทนสัญลักษณ์กราฟิกและสัญลักษณ์ทางคณิตศาสตร์ได้อีกด้วย
| |||







