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

12
บบบบบ 2: บบบบบบบบบบ บบบบบบบบบบบ 2.1 บบบบ กกกกกกกกกกกกกกกกกกกกกกกกกกก ก กกกกกกกกก กกกกกกกกกกกกกกกกกกก ก กกกกกก กกกกกกกกก กกกก กกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกก กกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกก กกกกกกก กกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกก กกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกก กกกกกกกกก กกกกกกกกกกกกกกก กกกกกกกกกกกกกกกกกกกกกกก กกกกกกกกกกกกกกกกกกกก กกกกกกกกกกกกกกกก กกกกก กกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกก กกกกกกกกกกกกกกก Computer กกกกกกกกกกกกกก กกกกกกกกกกกกกกกกกกกกกก กกกกกกกกกกกกกกกกกกกก กกก กกก กกกกกกกกกกกก 0 กกก 1 กกกกกกกกกก กกกกกกกกกกกกกกกกกกกกกกกกกกกกก กกกกกกกกกกกกก กกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกก กกกกกกกกกกกกกกกกกกกกก กกกกกกกกกกกกกกกกกกกก กกกกกก 0 กกก 1 กกกกกกกกกกกกกกกกกกกกกกกกกกกก กกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกก กกกกกกกก กกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกก กกกกกกกกกกกกกกกกก”กกก” (Word) กกกก “กกกก กกก” (Code Words) กกกกกกกกกกกกกกกกกกกกกก กกกกกกกกกกกกกกกกกก กกกกกกกกกกกกกกกกกกกกกกกก กกกกกกกกกกกกกกกกกกกก กกกกกกกกกกกกกกกกกกกกก กกกกกกกก 1. บบบ กกกกกกกกกกกกกกกกกกกก กกก”0” กกกกกกก”1” กกกกกกกกกกกกกก 2. บบบบบบบบบ กกกกกกกกกกกกกกกกกกกกกก กกกกกกกกกกกกกกกกกกกกกก 4 กกก กกกกกก กกก 4 กกก กกกกกกกก 1 กกกกกกกกก

Upload: sa

Post on 16-Nov-2014

32 views

Category:

Documents


1 download

DESCRIPTION

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

TRANSCRIPT

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

บทท�� 2: รหั�สตั�วเลขเนื้��อหัาสาระ2.1 รหั�ส

การเข้�ารหั�สในการส� อสารต่�าง ๆ ข้องมน�ษย์�เราม�จุ�ดประสงค์�ต่�าง ๆ มากมาย์ ภาษาเข้�ย์น ภาษาพู!ดล้�วนแต่�เป%นรหั�สที่� มน�ษย์�สร�างข้'(นมาเพู� อใช้�ในการส� อสารที่�(งส*(นแต่�ภาษาเข้�ย์น ภาษาพู!ดที่� ใช้�ก�นจุะเป%นรหั�สที่� ค์นส�วนใหัญ่�เข้�าใจุต่รงก�นเร�ย์กได�ว�าเป%นรหั�สที่� เป%นสากล้ ซึ่' งในการใช้�รหั�สบางค์ร�(ง เราอาจุต่�องการใหั�เป%นการส� อสารก�นในเฉพูาะงาน เฉพูาะก*จุเที่�าน�(น ม�ผู้!�ร! �แล้ะเข้�าใจุในรหั�สเฉพูาะผู้!�ที่� เก� ย์วข้�อง ส1าหัร�บในงามที่าง Computer เราจุะน1าเอาการที่1างานในล้�กษณะสว*ที่ช้* ง ซึ่' งอย์!�ในระบบเล้ข้ฐานสอง ค์�อ ประกอบไปด�วย์ 0 ก�บ 1 มาใช้�ในการก1าหันดแล้ะว*เค์ราะหั�ในการที่1างาน ซึ่' งค์�าเล้ข้ฐานสองที่� เก*ดข้'(นก4ม�การก1าหันดค์วามหัมาย์ในการที่1างานที่� แต่กต่�างก�นไป เราจุ'งเก*ดรหั�สที่� น1าเอาเล้ข้ 0 ก�บ 1 ที่� มาใช้�ประกอบก�นเป%นรหั�สที่� ม�การน1าไปใช้�เก*ดข้'(นมากมาย์ต่าแต่�มาต่รฐานข้องแต่�ล้ะงาน

การน1าแต่�ล้ะบ*ต่ข้องเล้ข้ฐานสองมารวมก�นเป%นกล้��มจุะถู!กเร�ย์กว�า ค์1า ” ” (Word) หัร�อ รหั�สค์1า“ ” (Code Words) แต่�ล้ะกล้��มข้องรหั�สค์1าม�จุ1านวนแต่กต่�างก�นไป ค์1าจุ1าก�ดค์วามข้องกล้��มเล้ข้ฐานสองที่� น1ามารวมก�น ม�ช้� อเร�ย์กแต่กต่�างก�นไปด�งน�(

1. บ�ตั ค์�อเล้ข้ฐานสองแต่�ล้ะต่�ว เล้ข้”0” หัร�อเล้ข้”1” ที่� น1ามาใช้�งาน

2. นื้�บเบ�ลส� ค์�อการรวมเล้ข้ฐานสองเข้�าด�วย์ก�นเป%นกล้��มจุ1านวน 4 บ*ต่ เล้ข้ฐานสอง 4 บ*ต่ เร�ย์กว�า 1 น*บเบ*ล้ส�

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

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

น*บเบ*ล้ส� หัร�อประกอบด�วย์กล้��มไบต่ส�อย์�างน�อย์ 2 ไบต่ส�

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

ด�งน�(นเราจุ'งต่�องศึ'กษารหั�สต่�าง ๆ ที่� ม�ใช้�ก�นแล้ะอาจุเป%นที่� น*ย์มใช้� เพู� อจุะได�เข้�าใจุค์วามหัมาย์แล้ะสามารถูน1าไปประกอบการศึ'กษาแล้ะว*เค์ราะหั�การที่1างานข้องวงจุรที่างด*จุ*ต่อล้ต่�อไป

2.2 รหั�ส BCD8421

รหั�สเบ�(องต่�นที่� จุะกล้�าวถู'งน�(เป%นรหั�สเล้ข้ฐานสอง ซึ่' งสร�างข้'(นมาเล้�ย์นแบบเล้ข้ฐานส*บ

ด�งน�(นรหั�ส BCD แบบ 8421 จุ'งม�จุ1านวนเที่�าก�บจุ1านวนข้องเล้ข้ฐานส*บ ค์�อ 10 รหั�ส

ต่ารางที่� 1 ใหั� BCD-8421 เปร�ย์บเที่�ย์บก�บเล้ข้ส*บ

จุากต่ารางที่� 1 เล้ข้ Decimal 1 Digit เข้�ย์นแที่นด�วย์เล้ข้ Binary 4 bit โดย์ที่� แต่�ล้ะ bit ข้องรหั�ส BCD -8421 ได�ก1าหันดน1(าหัน�กไว�ต่�างๆ ก�น ค์�อ bit ที่างข้วาม�อส�ดม�น1(าหัน�กเป%น 1 ถู�ดมาเป%น 2,4 แล้ะซึ่�าย์ม�อส�ดเป%น 8 ต่ามล้1าด�บ เราจุ'งเร�ย์กรหั�ส BCD แบบ 8421 หัร�อ BCD -8421 รหั�ส BCD -8421 น�(น�บว�าสะดวกสบาย์

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

ในการอ�านมาก เพูราะถู�าเล้ข้ Decimal ม�หัล้าย์ๆ หัล้�ก (Digit) ก4จุะแที่นแต่�ล้ะหัล้�กข้องเล้ข้ Decimal ด�วย์เล้ข้ Binary หัล้�กล้ะ 4 bit

ต่ารางที่� 2 การแที่นเล้ข้ Decimal หัล้าย์ๆ หัล้�ก ด�วย์รหั�ส BCD-8421

รหั�ส BCD -8421 น�(น ถู'งแม�ว�าจุะเข้�ย์นอย์!�ในร!ปข้องเล้ข้ฐานสอง แต่�ก4ไม�เหัม�อนก�บ

เล้ข้ฐานสอง เช้�น (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 จุะเหั4นว�า Excess - 3 code จุะม�ค์�ามากกว�า BCD -

8421 code อย์!� 3

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

การเข้�ารหั�สเล้ข้ Decimal เป%น Excess - 3 code หัร�อ การถูอดรหั�สจุาก Excess - 3 code เป%น

เล้ข้ Decimal ก4ม�ว*ธี�การเช้�นเด�ย์วก�นก�บการเข้�ารหั�สเล้ข้ 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 โดย์ม�ช้� อรหั�สบ�งค์�าน1(าหัน�กข้อง bit ในแต่�ล้ะต่1าแหัน�ง การเข้�ารหั�ส หัร�อ ถูอดรหั�สก4สามารถูที่1าได�โดย์ว*ธี�การเช้�นเด�ย์วก�บที่� กล้�าวมาแล้�ว

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

ต่ารางที่� 6 BCD code ข้นาด 4 bits แบบต่�าง ๆ

2.5 รหั�ส BCD แบบ 5 บ�ตัถู'งแม�ว�าการใช้� 4 bit code ก4เพู�ย์งพูอต่�อการเข้�ารหั�สข้องเล้ข้ Decimal 0 ถู'ง 9 แต่�การใช้�

จุ1านวน bit มากข้'(นอ�ก ย์�อมจุะใช้�ประโย์ช้น�จุากรหั�สน�(นได�เป%นพู*เศึษอ�กด�วย์ เช้�น ต่รวจุหัา error แล้ะแก�ไข้ error น�(น นอกจุากน�( รหั�สบางแบบก4ม�ค์วามสะดวกต่�อการใช้�งานส1าหัร�บวงจุรอ*เล้4กที่รอน*ค์ส�ด�วย์

2out of 5 code เป%น Unweighted code ประกอบด�วย์ bit 1 เพู�ย์ง 2 ต่�วน�(น ใน code group จุ'ง

ที่1าใหั�ต่รวจุสอบข้�อผู้*ดพูล้าดได�ง�าย์ 51111 code เป%น weighted code ส�วน Shift

counter code (หัร�อ johnson code) เป%น Unweighted code ซึ่' ง code ที่�(งสองแบบน�(ม�ล้�กษณะค์ล้�าย์ก�น ล้�กษณะการจุ�ด code แบบที่� ที่1าใหั�สะดวกต่�อการใช้�งานในวงจุรอ*เล้4กที่รอน*ค์ส�

ต่ารางที่� 7 5-bit codes

2.6 รหั�ส BCD มากิกิว า 5 บ�ตั

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

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

- Counter code แสดงไว�ด�งต่ารางที่� 8

ต่ารางที่� 8 Biquinary code แล้ะ Ring - Counter code

Biquinary code เป%นรหั�สที่� ม� 7 bits แล้ะม�ค์�าน1(าหัน�กก1าหันดไว�ในแต่�ล้ะต่1าแหัน�ง ต่ามช้� อเร�ย์ก ค์�อ 50 43210 code การต่รวจุสอบ crror กระที่1าได�ง�าย์มาก

เพูราะม� bit 1 อย์!�เพู�ย์ง 2 ต่�วเที่�าน�(นในแต่�ล้ะ code group แล้ะ bit 1 ต่�วแรกจุะอย์!�ในกล้��ม 50 ส�วน bit 1 อ�กต่�วหัน' งจุะอย์!�ในกล้��ม 43210 การต่รวจุสอบ error จุ'งที่1าได�ถู'งสองช้�(น

Ring Counter code เป%นรหั�สที่� ง�าย์ต่�อการเข้�ารหั�สแล้ะถูอดรหั�ส ถู'งแม�ว�ารหั�สแบบน�(จุะม�ถู'ง 10 bit แต่�การต่รวจุสอบ error ก4ที่1าได�ง�าย์ จุ'งเป%นที่� น*ย์มในการใช้�งานที่� วไป 2.7 รหั�สเกิรย์�

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

ต่ารางที่� 9 การเปร�ย์บเที่�ย์บระหัว�าง เล้ข้ Binary ก�บ Gray code

ต่�(งแต่�เล้ข้ 0-15

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

ข้อง Binary

2. เล้ข้ Binary หัล้�ก MSB บวก เล้ข้ Binary bit ที่� ม�น�ย์ส1าค์�ญ่ต่1 ากว�าโดย์ไม�ค์*ดต่�วที่ด จุะได�

Gray code หัล้�กที่� สอง3. Gray code บ*ที่ถู�ดไปจุะเก*ดจุากการบวกเล้ข้ Binary

ณ.ต่1าแหัน�งข้องหัล้�กม�นก�บเล้ข้ Binary ต่1าแหัน�งที่� ม�น�ย์ส1าค์�ญ่ส!งกว�าตั�วอย์ างท�� 2.3 จุงแปล้งเล้ข้ Binary 10110 ใหั� เป%น Gray code

ว�ธี�ท�า1 0 1 1 0 Binary + + + + 1 1 1 0 1 Gray code

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

Gray code2. เล้ข้ Binary บ*ต่ที่� ต่�องการหัาจุะเก*ดจุากการน1า เล้ข้ Binary bit ที่� ม�น�ย์ส1าค์�ญ่ส!งกว�าบวก

ก�บ Gray code หัล้�กที่� อย์!�ต่1าแหัน�งเด�ย์วก�บม�นโดย์ไม�ค์*ดต่�วที่ด

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

ตั�วอย์ างท�� 2.4 จุ ง แ ป ล้ ง Gray code 11011 ใ หั� เ ป% น เ ล้ ข้ Binary

ว�ธี�ท�า1 1 0 1 1 Gray code + + + +

1 0 0 1 0 Binary

2.8 รหั�ส ASCII

รหั�สแอสก�เป%นรหั�สมาต่รฐานที่� ย์อมร�บก�นในวงการอ�ต่สาหักรรมอย์�างกว�างข้วาง ซึ่' งใช้�แพูร�หัล้าย์ก�นในระบบค์อมพู*วเต่อร�ข้นาดเล้4ก รวมที่�(งในระบบอ*นพู�ที่แล้ะเอาที่�พู�ที่ เช้�น เค์ร� องพู*มพู� (printer) เที่อร�ม*นอล้ (terminal) เป%นต่�น รหั�สช้น*ดน�(ประกอบไปด�วย์เล้ข้ฐานสองจุ1านวน 8 bit ซึ่' งใช้�แที่นที่�(งต่�วเล้ข้แล้ะต่�วอ�กษรพูร�อมที่�(งต่�วเค์ร� องหัมาย์ต่�าง ๆ เล้ข้ฐานสอง 8 bit จุะสามารถูแที่นหัร�สได�ส!งส�ด 28 แบบ ค์�อ 256 แบบ (จุาก 00000000

ถู'ง 11111111 หัร�อ 00 ถู'ง FF) แต่�ต่ามมาต่รฐานน�(จุะใช้�งานจุร*ง ๆ เพู�ย์ง 7 bit เที่�าน�(น บ*ต่ที่� แปดอาจุจุะน1าไปใช้�เป%น Parity bit หัร�อ ใช้�สร�างรหั�สที่� เป%นภาษาข้องแต่�ล้ะประเที่ศึ เช้�น ภาษาไที่ย์ เป%นต่�น

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

2.9 พาร�ตั�บ�ตัพูาร*ต่�บ*ต่ (Parity Bit) หัร�อบ*ต่ต่รวจุสอบ (check Bit) เป%นบ*ต่ข้องเล้ข้ฐานสองที่� ใส�เพู* มเข้�าไปใน

รหั�สข้�อม!ล้ที่� ใช้�ส�งข้�าวสาร เพู� อใช้�ในการต่รวจุสอบค์�าค์วามผู้*ดปกต่*ข้องข้�อม!ล้ที่� ที่1าการส�ง โดย์การเพู* มจุ1านวนบ*ต่เข้�าไปในข้�อม!ล้อ�ก 1

บ*ต่ ต่�วพูาร*ต่�(ที่� ใส�ไว�ในข้�อม!ล้อาจุเป%นเล้ข้ 0 หัร�อเล้ข้ 1 ก4ได� ข้'(นอย์!�ก�บว*ธี�การใส�พูาร*ต่�( ว�าจุะเล้�อกใช้�การต่รวจุสอบด�วย์พูาร*ต่�(ช้น*ด พูาร*ต่�(ค์� (Odd Parity) หัร�อ ช้น*ดพูาร*ต่�(ค์!� (Even Parity)

พูาร*ต่�(ค์� ค์�อ การใส�พูาร*ต่�(บ*ต่เข้�าไปในรหั�สข้�อม!ล้ แล้�วที่1าใหั�จุ1านวนเล้ข้ 1 ข้องรหั�สข้�อม!ล้เป%นจุ1านวนค์�

พูาร*ต่�(ค์!� ค์�อ การใส�พูาร*ต่�(บ*ต่เข้�าไปในรหั�สข้�อม!ล้ แล้�วที่1าใหั�จุ1านวนเล้ข้ 1 ข้องรหั�สข้�อม!ล้เป%นจุ1านวนค์!�

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

การใส�พูาร*ต่�(บ*ต่สามารถูน1าไปใส�ได�ในรหั�สเล้ข้ฐานสองแบบต่�างๆ ได�ที่�กรหั�ส โดย์เพู* มพูาร*ต่�(บ*ต่เข้�าไปในแต่�ล้ะรหั�สข้�อม!ล้เหัล้�าน�(นที่�กๆข้�อม!ล้ เช้�น รหั�สข้�อม!ล้แบบ ASCII รหั�สเด*มม� 7 บ*ต่ เม� อใส�พูาร*ต่�(บ*ต่เข้�าไปจุะกล้าย์เป%น 8 บ*ต่ เป%นต่�น รหั�ส ASCII ข้ณะไม�ใส�แล้ะข้ณะใส�พูาร*ต่�(บ*ต่

การแที่นรหั�สฐานสองในเค์ร� องส1าหัร�บส1าหัร�บอ�กข้ระใด ๆ น�(นจุะต่�องม�บ*ต่พู*เศึษ• เพู� อใช้�ในการต่รวจุสอบค์วามถู!กต่�องข้องรหั�สเร�ย์กบ*ต่น�(ว�า บ*ต่พูาร*ต่� (Parity bit หัร�อ Checkbit)• บ*ต่พูาร*ต่�จุะเป%นบ*ต่ต่รวจุสอบการส�งข้�อม!ล้ภาย์ในว�าข้�อม!ล้ม�ข้�อผู้*ดพูล้าดเก*ดข้'(นหัร�อไม�

การต่รวจุสอบด�วย์บ*ต่พูาร*ต่� ม� 2 ระบบ ค์�อ1) พูาร*ต่�ค์� (Odd-parity) เป%นระบบที่� จุ1านวนบ*ต่ที่� เป%น 1

(on) จุะต่�องเป%นจุ1านวนค์� เสมอ เช้�น101101 ม�จุ1านวนบ*ต่ 1 เป%น 4 ซึ่' งเป%นจุ1านวนค์!�ด�งน�(น บ*ต่พูาร*ต่�จุะต่�องเป%น 1 เพู� อใหั�จุ1านวนเป%นค์�

2) พูาร*ต่�ค์!� (Even-parity) เป%นระบบที่� จุ1านวนบ*ต่ที่� เป%น 1

(on) จุะต่�องเป%นจุ1านวนค์!�เสมอด�งน�(นในระบบน�( ข้�อม!ล้ 101101 จุะต่�องม�บ*ต่พูาร*ต่�เป%น 0

1 1 0 1 1 0 1

0 1 0 1 1 0

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

Even parity ค์�อ parity ที่� เต่*มเข้�าไปใน code word

แล้�วที่1าใหั�จุ1านวนเล้ข้ 1 ข้อง code word น�(น เป%นจุ1านวนค์!� Odd parity ค์�อ parity ที่� เต่*มเข้�าไปใน code word แล้�ว

ที่1าใหั�จุ1านวนเล้ข้ 1 ข้อง code word น�(น เป%นจุ1านวนค์�