วันอังคารที่ 9 กรกฎาคม พ.ศ. 2556

รหัสแทนข้อมูล ( รหัส ASCII และ รหัส Unicode )


                                                       รหัส ASCII


แอสกี หรือ รหัสมาตรฐาน ของสหรัฐอเมริกาเพื่อการแลกเปลี่ยนสารสนเทศ (อังกฤษ: ASCII: American Standard Code for Information Interchange) เป็รหัสอักขระที่ประกอบด้วอักษรละติน เลขอารบิก เครื่องหมายวรรคตอน และสัญลักษณ์ต่างๆ โดยแต่ละรหัสจะแทนด้วยตัวอักขระหนึ่งตัว เช่น รหัส 65 (เลขฐานสิบ) ใช้แทนอักษรเอ (A) พิมพ์ใหญ่ เป็นต้น


ประวัติ รหัสแอสกีมีใช้ในระบบคอมพิวเตอร์ และเครื่องมือสื่อสารแบบดิจิทัลต่างๆ พัฒนาขึ้นโดยคณะกรรมการ X3 ซึ่งอยู่ภายใต้การดูแลของสมาคมมาตรฐานอเมริกา (American Standards Association) ภายหลังกลายเป็น สถาบันมาตรฐานแห่งชาติอเมริกา (American National Standard Institute : ANSI) ในปี ค.ศ. 1969 โดยเริ่มต้นใช้ครั้งแรกในปี ค.ศ. 1967 ซึ่งมีอักขระทั้งหมด 128 ตัว (7 บิต) โดยจะมี 33 ตัวที่ไม่แสดงผล (unprintable/control character) ซึ่งใช้สำหรับควบคุมการทำงานของคอมพิวเตอร์บางประการ เช่น การขึ้นย่อหน้าใหม่สำหรับการพิมพ์ (CR & LF - carriage return and line feed) การสิ้นสุดการประมวลผลข้อมูลตัวอักษร (ETX - end of text) เป็นต้น และ อีก 95 ตัวที่แสดงผลได้ (printable character) ดังที่ปรากฏตามผังอักขระ (character map) ด้านล่าง รหัสแอสกีได้รับการปรับปรุงล่าสุดเมื่อ ค.ศ. 1986 ให้มีอักขระทั้งหมด 256 ตัว (8 บิต) และเรียกใหม่ว่าแอสกีแบบขยาย อักขระที่เพิ่มมา 128 ตัวใช้สำหรับแสดงอักขระเพิ่มเติมในภาษาของแต่ละท้องถิ่นที่ใช้ โดยจะมีผังอักขระที่แตกต่างกันไปในแต่ละภาษาซึ่งเรียกว่า โคดเพจ (codepage) โดยอักขระ 128 ตัวแรกส่วนใหญ่จะยังคงเหมือนกันแทบทุกโคดเพจ มีส่วนน้อยที่เปลี่ยนแค่บางอักขระ

ASCII เป็นรูปแบบปกติของไฟล์ข้อความ (text file) ในคอมพิวเตอร์ และอินเตอร์เน็ต ในไฟล์ ASCII อักษรแต่ละตัว ตัวเลข หรืออักษรพิเศษ จะได้รับการแสดงด้วยตัวเลขฐานสอง ซึ่งสามารถใช้ระบุตัวอักษรได้ 128 ตัว

ระบบ ปฏิบัติการ UNIX และ DOS (ยกเว้น Windows NT) ใช้ ASCII สำหรับไฟล์ข้อความ ระบบ Windows NT ใช้รหัสแบบใหม่ คือ Unicode ในระบบ IBM 390 ใช้รหัส 8 หลัก เรียกว่า extended binary-decimal interchange code โปรแกรมแปลงยินยอมให้ระบบปฏิบัติที่แตกต่างกันแปลงไฟล์จากรหัสหนึ่งเป็น อีกรหัสหนึ่ง

ตัวอย่าง รหัสแทนข้อมูลแบบ ASCII

บิตที่
7
6
5
4
3
2
1
0


0
0
1
1
0
1
1
1
แทน 7

0
1
0
0
0
1
1
1
แทน G

0
1
1
0
0
1
1
1
แทน g

0
1
0
0
1
0
1
0
แทน J

0
0
1
0
1
0
1
1
แทน +

จากหลักการของระบบเลขฐานสอง แต่ละบิตสามารแทนค่าได้ 2 แบบ คือ เลข 0 หรือเลข 1 ถ้าเราเขียนเลขฐานสอง เรียงกัน 2 บิต ในการแทนอักขระ เราจะมีรูปแบบในการแทนอักขระได้ 2 หรือ 4 รุปแบบคือ 00 ,01 ,10 ,11 ดังนั้นในการใช้รหัสแอสกีซึ่งมี 8 บิต ในการแทนอักขระแล้ว เราจะมีรูปแบบที่ใช้แทนถึง 28 หรือ 256 รูปแบบ ซึ่งเมื่อใช้แทนตัวอักษรภาษาอังกฤษแล้ว ยังมีเหลืออยู่ สำนักงานมาตรฐานผลิตภัณฑ์อุตสาหกรรม หรือ สมอ.จึงได้กำหนดรหัสภาษาไทยเพิ่มลงไปเพื่อให้ใช้งานร่วมกัน

ตัวอย่าง การแทนข้อมูลในเครื่องคอมพิวเตอร์

A
0100 0001
X
0101 1000
B
0100 0010
Y
0101 1001
C
0100 0011
Z
0101 1010
D
0100 0100
0
0011 0000
E
0100 0101
1
0011 0001
F
0100 0110
2
0011 0010
G
0100 0111
3
0011 0011
H
0100 1000
4
0011 0100
I
0100 1001
5
0011 0101
J
0100 1010
6
0011 0110
K
0100 1011
7
0011 0111
L
0100 1100
8
0011 1000
M
0100 1101
9
0011 1001
N
0100 1110
.
0010 1110
O
0100 1111
(
0010 1000
P
0101 0000
+
0010 1011
Q
0101 0001
$
0010 0100
R
0101 0010
*
0010 1010
S
0101 0011
)
0010 1001
T
0101 0100
-
0010 1101
U
0101 0101
/
0010 1111
V
0101 0110
'
0010 1100
W
0101 0111
=
0010 1101


รหัส UNICODE



Unicode คืออะไร ยูนิโค๊ด คือ รหัสคอมพิวเตอร์ใช้แทนตัวอักขระ สามารถใช้แทน ตัวอักษร,ตัวเลข,สัญลักษณ์ต่างๆ ได้มากกว่ารหัสแบบเก่าอย่าง ASCII ซึ่งเก็บตัวอักษรได้สูงสุดเพียง 256 ตัว(รูปแบบ) โดย Unicdoe รุ่นปัจจุบันสามารถเก็บตัวอักษรได้ถึง 34,168 ตัวจากภาษาทั้งหมดทั่วโลก 24 ภาษา โดยไม่สนใจว่าเป็นแพลตฟอร์มใด ไม่ขึ้นกับโปรแกรมใด หรือภาษาใด unicode ได้ถูกนำไปใช้โดยผู้นำในอุตสาหกรรม เช่น Apple, HP, IBM, Microsoft, Unix ฯลฯ และเป็นแนวทางอย่างเป็นทางการในการทำ ISO /IEC 10646 ดังนั้น Unicode จึงถือเป็นมาตรฐานในการกำหนดรหัส สำหรับทุกตัวอักษร ทุกอักขระ unicode ทำให้ข้อมูลสามารถเคลื่อนย้ายไปมาในหลายๆ ระบบ ข้ามแพลตฟอร์มไปมา หรือข้ามโปรแกรมได้อย่างสะดวก โดยไร้ข้อจำกัด

Unicode ต่างจาก ASCII คือ ASCII เก็บ byte เดียว แต่ Unicode เก็บ 2 byte ซึ่งข้อมูล 2 byte เก็บข้อมูลได้มากมายมหาศาล สามารถเก็บข้อมูลได้มากมายหลายภาษาในโลก
อย่างภาษาไทยก็อยู่ใน Unicode นี้ด้วยเหมือนกัน ดังนั้นรหัสภาษาไทยเอาไปเปิดในภาษาจีน ก็ยังเป็นภาษาไทยอยู่ ไม่ออกมาเป็นภาษาจีน เพราะว่ามี code ตายตัวอยู่ว่า code นี้จองไว้สำหรับภาษาไทย แล้ว code ตรงช่วงนั้นเป็นภาษาจีน ตรงโน่นเป็นภาษาญี่ปุ่น จะไม่ใช้ที่ซ้ำกัน เป็นต้น

Unicode คืออะไร ยูนิโค๊ด คือ รหัสคอมพิวเตอร์ ซึ่งใช้แทนตัวอักษร ตัวเลข และ สัญลักษณ์ต่างๆ
ยูนิโคด (อังกฤษ: Unicode) คือมาตรฐานอุตสาหกรรมที่ช่วยให้คอมพิวเตอร์แสดงผลและจัดการข้อความธรรมดาที่ใช้ในระบบการเขียนของภาษาส่วนใหญ่ในโลกได้อย่างสอดคล้องกัน ยูนิโคดประกอบด้วยรายการอักขระที่แสดงผลได้มากกว่า 100,000 ตัว พัฒนาต่อยอดมาจากมาตรฐานชุดอักขระสากล (Universal Character Set: UCS) และมีการตีพิมพ์ลงในหนังสือ The Unicode Standard เป็นแผนผังรหัสเพื่อใช้เป็นรายการอ้างอิง นอกจากนั้นยังมีการอธิบายวิธีการที่ใช้เข้ารหัสและการนำเสนอมาตรฐานของการเข้ารหัสอักขระอีกจำนวนหนึ่ง การเรียงลำดับอักษร กฎเกณฑ์ของการรวมและการแยกอักขระ รวมไปถึงลำดับการแสดงผลของอักขระสองทิศทาง (เช่นอักษรอาหรับหรืออักษรฮีบรูที่เขียนจากขวาไปซ้าย)

ยูนิโคดคอนซอร์เทียม (Unicode Consortium) ซึ่งเป็นองค์กรไม่แสวงหาผลกำไร เป็นผู้รับผิดชอบในการพัฒนายูนิโคด องค์กรนี้มีจุดมุ่งหมายเกี่ยวกับการแทนที่การเข้ารหัสอักขระที่มีอยู่ด้วยยูนิโคดและมาตรฐานรูปแบบการแปลงยูนิโคด (Unicode Transformation Format: UTF) แต่ก็เป็นที่ยุ่งยากเนื่องจากแผนการที่มีอยู่ถูกจำกัดไว้ด้วยขนาดและขอบเขต ซึ่งอาจไม่รองรับกับสภาพแวดล้อมหลายภาษาในคอมพิวเตอร์
ความสำเร็จของยูนิโคดคือการรวมรหัสอักขระหลายชนิดให้เป็นหนึ่งเดียว นำไปสู่การใช้งานอย่างกว้างขวางและมีอิทธิพลต่อการแปลภาษาของซอฟต์แวร์คอมพิวเตอร์ นั่นคือโปรแกรมจะสามารถใช้ได้หลายภาษา มาตรฐานนี้มีการนำไปใช้เป็นเทคโนโลยีหลักหลายอย่าง

ยูนิโคดสามารถนำไปใช้งานได้ด้วยชุดอักขระแบบต่าง ๆ ชุดอักขระที่เป็นที่รู้จักมากที่สุดคือ UTF-8 (ใช้ 1 ไบต์สำหรับอักขระทุกตัวในรหัสแอสกีและมีค่ารหัสเหมือนกับมาตรฐานแอสกี หรือมากกว่านั้นจนถึง 4 ไบต์สำหรับอักขระแบบอื่น) UCS-2 ซึ่งปัจจุบันเลิกใช้แล้ว (ใช้ 2 ไบต์สำหรับอักขระทุกตัว แต่ไม่ครอบคลุมอักขระทั้งหมดในยูนิโคด) และ UTF-16 (เป็นส่วนขยายจาก UCS-2 โดยใช้ 4 ไบต์สำหรับแทนรหัสอักขระที่ขาดไปของ UCS-2)


                                    ชื่อ - นามสกุล ASCII

                                         APICHAYA NANAKORN  

A          0100 0001
P          0101 0000
I           0100 1001
C          0100 0011
H          0100 1000
A          0100 0001
Y          0101 1001
A          0100 0001
SPACE   0100 0000
N          0100 1110
A          0100 0001
N          0100 1110
A          0100 0001
K          0100 1011
O          0100 1111
R          0101 0010
N          0100 1110

                              *** ใช้พื้นที่จัดเก็บจำนวน 136 bit 17 byte ***




















8 ความคิดเห็น:

  1. ยอดเยี่ยมมากครับ / ขอขอบคุณที่ให้ความรู้

    ตอบลบ
  2. 01010111011001010110001001100101011100110111010001101111011011110110110001110011
    ช่วยบอกทีแปลว่าอะไร

    ตอบลบ
  3. 0111001001000010
    แปลว่าอะไร

    ตอบลบ
  4. 0101 1001 0011 0000 0101 0101 0101 0010 0100 1101 0100 1111 0100 1101 0100 1100 0100 1111 0100 1111 0100 1011 0100 0111 0100 0001 0101 1001

    ตอบลบ