บทที่ 2: รหัสตัวเลข

เนื้ อหาสาระ
2.1
รหัส
การเข้ารหัสในการสื่อสารต่าง ๆ ของมนุษย์เรามีจุดประสงค์ต่าง
ๆ มากมาย ภาษาเขียน ภาษาพูดล้วนแต่เป็ นรหัสที่มนุษย์สร้างขึ้นมา
เพื่อใช้ในการสื่อสารทัง้ สิน
้ แต่ภาษาเขียน ภาษาพูดที่ใช้กันจะเป็ นรหัส
ที่คนส่วนใหญ่เข้าใจตรงกันเรียกได้ว่าเป็ นรหัสที่เป็ นสากล ซึ่งในการ
ใช้ ร หั ส บางครั ง้ เราอาจต้ อ งการให้ เ ป็ น การสื่ อ สารกั น ในเฉพาะงาน
เฉพาะกิจเท่านั ้น มีผู้รู้และเข้าใจในรหัสเฉพาะผู้ท่ีเกี่ยวข้อง สำาหรับใน
งามทาง Computer เราจะนำ า เอาการทำา งานในลักษณะสวิทชิ่ง ซึ่งอยู่
ในระบบเลขฐานสอง คื อ ประกอบไปด้ ว ย 0 กั บ 1 มาใช้ ใ นการ
กำาหนดและวิเคราะห์ในการทำางาน ซึ่งค่าเลขฐานสองที่เกิดขึ้นก็มีการ
กำาหนดความหมายในการทำา งานที่แตกต่างกันไป เราจึงเกิดรหัสที่นำา
เอาเลข 0 กับ 1 ที่มาใช้ประกอบกัน เป็ นรหั สที่ มีการนำ า ไปใช้ เกิ ดขึ้ น
มากมายตาแต่มาตรฐานของแต่ละงาน
การนำ า แต่ละบิตของเลขฐานสองมารวมกันเป็ นกลุ่มจะถูกเรียก
ว่า”คำา ” (Word) หรือ “รหัสคำา ” (Code Words) แต่ละกลุ่มของรหัส
คำามีจำานวนแตกต่างกันไป คำาจำากัดความของกลุ่มเลขฐานสองที่นำามา
รวมกัน มีช่ ือเรียกแตกต่างกันไปดังนี้
1. บิต คือเลขฐานสองแต่ละตัว เลข”0” หรือเลข”1” ที่นำามาใช้
งาน
2. นิ บเบิลส์ คือการรวมเลขฐานสองเข้าด้วยกันเป็ นกลุ่มจำานวน
4 บิต เลขฐานสอง 4 บิต เรียกว่า 1 นิ บเบิลส์

3. ไบตส์ คือ การรวมเลขฐานสองเข้าด้วยกันเป้ นกลุ่มจำานวน 8
บิต เลขฐานสอง 8 บิต เรียกว่า 1 ไบตส์

4. คำา คือการรวมเลขฐานสองที่จัดอยู่ในรูปนิ บเบิลส์ หรือไบตส์
เข้ า ด้ ว ยกั น คำา ต้ อ งประกอบด้ ว ยกลุ่ ม นิ บ เบิ ล ส์ อ ย่ า งน้ อ ย 4
นิ บเบิลส์ หรือประกอบด้วยกลุ่มไบตส์อย่างน้ อย 2 ไบตส์

ดังนั ้ นเราจึงต้องศึกษารหัสต่าง ๆ ที่มีใช้กันและอาจเป็ นที่นิยม
ใช้ เพื่ อ จะได้ เข้ า ใจความหมายและสามารถนำ า ไปประกอบการศึ ก ษา
และวิเคราะห์การทำางานของวงจรทางดิจิตอลต่อไป

BCD8421
รหัสเบื้องต้นที่จะกล่าวถึงนี้เป็ นรหัสเลขฐานสอง ซึ่งสร้างขึ้นมา
เลียนแบบเลขฐานสิบ
ดังนั ้นรหัส BCD แบบ 8421 จึงมีจำานวนเท่ากับจำานวนของเลขฐาน
2.2 รหัส

สิบ คือ 10 รหัส

ตารางที่ 1 ให้ BCD-8421 เปรียบเทียบกับเลขสิบ
จากตารางที่ 1 เลข Decimal 1 Digit เขียนแทนด้วยเลข

Binary 4 bit โดยที่แต่ละ bit ของรหัส BCD -8421 ได้กำาหนดนำ ้ า

หนั กไว้ต่างๆ กัน คือ bit ทางขวามือสุดมีนำ้าหนั กเป็ น 1 ถัดมาเป็ น
2,4 และซ้ายมือสุดเป็ น 8 ตามลำาดับ เราจึงเรียกรหัส BCD แบบ

8421 หรือ BCD -8421 รหัส BCD -8421 นี้นับว่าสะดวกสบายใน
การอ่านมาก เพราะถ้าเลข Decimal มีหลายๆ หลัก (Digit) ก็จะแทน
แต่ละหลักของเลข Decimal ด้วยเลข Binary หลักละ 4 bit

ตารางที่ 2 การแทนเลข Decimal หลายๆ หลัก ด้วยรหัส BCD-8421
รหัส BCD -8421 นั ้น ถึงแม้ว่าจะเขียนอยู่ในรูปของเลขฐาน
สอง แต่ก็ไม่เหมือนกับ
เลขฐานสอง เช่น (12)10 เขียนเป็ นเลขฐานสองได้เท่ากับ 1100 แต่

เขียนอยู่ในรูปของรหัส BCD -8421 ได้เป็ น 00010010 เป็ นต้น การ
เปรียบเทียบ เลขฐานสิบ เลขฐานสอง และรหัส BCD -8421 แสดงไว้
ตามตารางที่ 3

ตารางที่ 3 การเปรียบเทียบเลขฐานสิบ เลขฐานสอง และ BCD-8421
code

2.3 รหัสเกิน

3

รหัสเกิน 3 (Excess -3 code) ดัดแปลงมาจาก BCD -8421

code เมื่อเปรียบเทียบรหัสเกิน 3 กับ รหัส BCD -8421 ตามตารางที่
5 จะเห็นว่า Excess - 3 code จะมีคา่ มากกว่า BCD -8421 code
อยู่ 3

การเข้ารหัสเลข Decimal เป็ น Excess - 3 code หรือ การ
ถอดรหัสจาก Excess - 3 code เป็ น

เลข Decimal ก็มีวิธีการเช่นเดียวกันกับการเข้ารหัสเลข Decimal

เป็ น BCD -8421 code หรือการถอดรหัสจาก BCD -8421 code
เป็ น Decimal

ตารางที่ 5 การเปรียบเทียบระหว่าง BCD-8421 กับ Excess-3
2.4 รหัส

BCD แบบ 4 บิตชนิ ดอื่นๆ

นอกจาก BCD -8421 code แล้ว ยังมี BCD code แบบอื่นๆ อีก

มาก ตามตารางที่ 6 BCD code ขนาด 4 bits ที่นิยมใช้กัน BCD

code เหล่านี้เป็ น weighted code โดยมีช่ ือรหัสบ่งค่านำ ้ าหนั กของ bit
ในแต่ละตำาแหน่ ง การเข้ารหัส หรือ ถอดรหัสก็สามารถทำาได้โดยวิธี
การเช่นเดียวกับที่กล่าวมาแล้ว

ตารางที่ 6 BCD code ขนาด 4 bits แบบต่าง ๆ
2.5 รหัส

BCD แบบ 5 บิต

ถึงแม้ว่าการใช้ 4 bit code ก็เพียงพอต่อการเข้ารหัสของเลข
Decimal 0 ถึง 9 แต่การใช้

จำานวน bit มากขึ้นอีก ย่อมจะใช้ประโยชน์จากรหัสนั ้นได้เป็ นพิเศษ

อีกด้วย เช่น ตรวจหา error และแก้ไข error นั ้น นอกจากนี้ รหัสบาง
แบบก็มค
ี วามสะดวกต่อการใช้งานสำาหรับวงจรอิเล็กทรอนิ คส์ด้วย
2out of 5 code เป็ น Unweighted code ประกอบด้วย bit 1
เพียง 2 ตัวนั ้น ใน code group จึง
ทำาให้ตรวจสอบข้อผิดพลาดได้ง่าย
51111 code เป็ น weighted code ส่วน Shift counter code
(หรือ johnson code) เป็ น

Unweighted code ซึ่ง code ทัง้ สองแบบนี้มีลักษณะคล้ายกัน

ลักษณะการจัด code แบบที่ทำาให้สะดวกต่อการใช้งานในวงจรอิเล็ก
ทรอนิ คส์

ตารางที่ 7 5-bit codes
2.6 รหัส

BCD มากกว่า 5 บิต

Codes ที่มีมากกว่า 5 bits เช่น Biquinary code และ Ring -

Counter code แสดงไว้ดังตารางที่ 8

ตารางที่ 8 Biquinary code และ Ring - Counter code
Biquinary code เป็ นรหัสที่มี 7 bits และมีค่านำ ้ าหนั กกำาหนดไว้ในแต่ละ
ตำาแหน่ ง ตามชื่อเรียก คือ 50 43210 code การตรวจสอบ crror กระทำาได้ง่ายมาก
เพราะมี bit 1 อยู่เพียง 2 ตัวเท่านั ้นในแต่ละ code group และ bit 1 ตัวแรกจะอยู่ใน

กลุ่ม 50 ส่วน bit 1 อีกตัวหนึ่ งจะอยู่ในกลุ่ม 43210 การตรวจสอบ error จึง

ทำาได้ถึงสองชัน

Ring Counter code เป็ นรหัสที่ง่ายต่อการเข้ารหัสและ
ถอดรหัส ถึงแม้ว่ารหัสแบบนี้จะมี
ถึง 10 bit แต่การตรวจสอบ error ก็ทำาได้ง่าย จึงเป็ นที่นิยมในการใช้
งานทัว่ ไป
2.7
รหัสเกรย์

ตารางที่ 9 การเปรียบเทียบระหว่าง เลข Binary กับ Gray code
ตัง้ แต่เลข 0-15

การแปลงเลข Binary ให้เป็ น Gray code มีวิธีการแปลง
ตามขัน
้ ตอนต่อไปนี้
1. หลักที่มีนัยสำาคัญสูงสุด ของ Gray code จะมีคา่ เท่ากับ หลัก
-

ที่มีนัยสำาคัญสูงสุด (MSB)

ของ Binary

2. เลข Binary หลัก MSB บวก เลข Binary bit ที่มีนัยสำา คัญ
ตำ่ากว่าโดยไม่คด
ิ ตัวทด จะได้
Gray code หลักที่สอง

3. Gray code บิ ท ถั ด ไ ป จ ะ เ กิ ด จ า ก ก า ร บ ว ก เ ล ข Binary
ณ.ตำาแหน่ งของหลักมันกับเลข

Binary ตำาแหน่ งที่มีนัยสำาคัญสูงกว่า
ตัวอย่างที่ 2.3

จงแปลงเลข Binary 10110 ให้เป็ น Gray code

วิธีทำา

1

0

1

1

1

1

1

0

+

+

0

Binary

1

Gray code

+

+

การแปลงเลข Gray code ให้เป็ น Binary มีวิธีการ
แปลงตามขัน
้ ตอนต่อไปนี้
1. หลักที่มีนัยสำา คัญสูงสุด (MSB) ของ Binary จะมีค่าเท่ากับ
หลักที่มีนัยสำาคัญสูงสุดของ
Gray code
-

2. เลข Binary บิตที่ ต้อ งการหาจะเกิด จากการนำ า เลข Binary
bit ที่มีนัยสำาคัญสูงกว่าบวก

กับ Gray code หลักที่อยู่ตำาแหน่ งเดียวกับมันโดยไม่คิดตัวทด

ตัวอย่างที่ 2.4
วิธีทำา

1

1
2.8

รหัส ASCII

จงแปลง Gray code 11011 ให้เป็ น เลข Binary
1

0

0

0

+

1

1

Gray code

1

0

Binary

+

+

+

รหัสแอสกีเป็ นรหัสมาตรฐานที่ยอมรับกันในวงการ
อุตสาหกรรมอย่างกว้างขวาง ซึ่งใช่แพร่หลายกันในระบบคอมพิวเตอร์
ขนาดเล็ก รวมทัง้ ในระบบอินพุทและเอาท์พุท เช่น เครื่องพิมพ์
(printer) เทอร์มินอล (terminal) เป็ นต้น รหัสชนิ ดนี้ประกอบไปด้วย
เลขฐานสองจำานวน 8 bit ซึ่งใช้แทนทัง้ ตัวเลขและตัวอักษรพร้อมทัง้
ตัวเครื่องหมายต่าง ๆ เลขฐานสอง 8 bit จะสามารถแทนหรัสได้

สูงสุด 2 แบบ คือ 256 แบบ (จาก 00000000 ถึง 11111111 หรือ
8

00 ถึง FF) แต่ตามมาตรฐานนี้จะใช้งานจริง ๆ เพียง 7 bit เท่านั ้น บิต
ที่แปดอาจจะนำ าไปใช้เป็ น Parity bit หรือ ใช้สร้างรหัสที่เป็ นภาษาของ
แต่ละประเทศ เช่น ภาษาไทย เป็ นต้น

2.9 พาริตีบิต

พาริตีบิต (Parity Bit) หรือบิตตรวจสอบ (check Bit) เป็ นบิตของ
เลขฐานสองที่ใส่เพิ่มเข้าไปใน

รหัสข้อมูลที่ใช้ส่งข่าวสาร เพื่อใช้ในการตรวจสอบค่าความผิดปกติของ
ข้อมูลที่ทำาการส่ง โดยการเพิ่มจำานวนบิตเข้าไปในข้อมูลอีก 1 บิต ตัว
พาริตีท
้ ่ีใส่ไว้ในข้อมูลอาจเป็ นเลข 0 หรือเลข 1 ก็ได้ ขึ้นอยู่กบ
ั วิธีการ
ใส่พาริตี้ ว่าจะเลือกใช้การตรวจสอบด้วยพาริตีช้ นิ ด พาริตีค
้ ่ี (Odd

Parity) หรือ ชนิ ดพาริตีค
้ ู่ (Even Parity)
พาริตีค
้ ่ี คือ การใส่พาริตีบ
้ ิตเข้าไปในรหัสข้อมูล แล้วทำาให้จำานวน
เลข 1 ของรหัสข้อมูลเป็ นจำานวนคี่
พาริตีค
้ ู่ คือ การใส่พาริตีบ
้ ิตเข้าไปในรหัสข้อมูล แล้วทำาให้จำานวน
เลข 1 ของรหัสข้อมูลเป็ นจำานวนคู่
การใส่พาริตีบ
้ ิตสามารถนำ าไปใส่ได้ในรหัสเลขฐานสองแบบต่างๆ
ได้ทก
ุ รหัส โดยเพิ่มพาริตีบ
้ ิตเข้าไปในแต่ละรหัสข้อมูลเหล่านั ้นทุกๆ
ข้อมูล เช่น รหัสข้อมูลแบบ ASCII รหัสเดิมมี 7 บิต เมื่อใส่พาริตีบ
้ ิต
เข้าไปจะกลายเป็ น 8 บิต เป็ นต้น รหัส ASCII ขณะไม่ใส่และขณะใส่
พาริตีบ
้ ิต

การแทนรหัสฐานสองในเครื่องสำาหรับสำาหรับอักขระใด ๆ นั ้น
จะต้องมีบิตพิเศษ
• เพื่อใช้ในการตรวจสอบความถูกต้องของรหัสเรียกบิตนี้ว่า บิตพาริตี
(Parity bit หรือ Check
bit)

• บิตพาริตีจะเป็ นบิตตรวจสอบการส่งข้อมูลภายในว่าข้อมูลมีข้อผิด
พลาดเกิดขึ้นหรือไม่
การตรวจสอบด้วยบิตพาริตี มี 2 ระบบ คือ

1) พาริตีค่ี (Odd-parity) เป็ นระบบที่จำานวนบิตที่เป็ น 1 (on)
จะต้องเป็ นจำานวนคี่เสมอ เช่น
101101 มีจำานวนบิต 1 เป็ น 4 ซึ่งเป็ นจำานวนคู่ดังนั ้น บิตพาริตีจะ
ต้องเป็ น 1 เพื่อให้จำานวนเป็ นคี่

1 1 0 1 1 0 1
2) พาริตีคู่ (Even-parity) เป็ นระบบที่จำานวนบิตที่เป็ น 1 (on)
จะต้องเป็ นจำานวนคู่เสมอ
ดังนั ้นในระบบนี้ ข้อมูล 101101 จะต้องมีบิตพาริตีเป็ น 0

0

1

0

Even parity คือ parity ที่เติมเข้าไปใน code word แล้วทำาให้

จำานวนเลข 1 ของ code word นั ้น เป็ นจำานวนคู่

Odd parity คือ parity ที่เติมเข้าไปใน code word แล้วทำาให้

จำานวนเลข 1 ของ code word นั ้น เป็ นจำานวนคี่

Sign up to vote on this title
UsefulNot useful