data

1,721 views
1,549 views

Published on

data

Published in: Education, Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,721
On SlideShare
0
From Embeds
0
Number of Embeds
225
Actions
Shares
0
Downloads
11
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

data

  1. 1. การแทนรหัสขอมูล Data Representation
  2. 2. รหัสขอมูล รหัสขอมูล คือ รหัสที่ใชแทนตัวเลข ตัวอักษร หรือสัญลักษณ พิเศษตางๆ ที่ใชในโปรแกรม ไฟลขอมูลเมื่อมีการใชเครื่อง คอมพิวเตอร รหัสภายนองเครื่อง (External Code) ใชบันทึกขอมูลที่ยังอยูภายนอกเครื่อง เชน รหัสที่ใชกับบัตรเจาะรู เปนการสรางรูปแบบของการเจาะรูในแตละ แถว ซึ่งหมายถึงหนึ่งอักขระ รหัสภายในเครื่อง (Internal Code) Pure Binary Code BCD (Binary Code Decimal) EBCDIC (Extended Binary Code Decimal Interchange Code) ASCII (American Standard Code Information Interchange)
  3. 3. รหัสขอมูล การแปลงเลขฐาน 2 กําหนดรหัสในคอมพิวเตอร เชน ระบบเลขฐาน 10 เมื่อบวก 3 เขาทุกตัว แลวแปลงเปนเลขฐาน 2 ดังนั้น 83910 แทนดวยรหัส 1011 0110 1100 ระบบเลขฐาน 10 + 3 8 + 3 = 11 3 + 3 = 6 9 + 3 = 12 ระบบเลขฐาน 2 1011 0110 1100
  4. 4. รหัสขอมูล รหัสของเกย (Gray Code) ไดจากการเปลี่ยนจํานวนในระบบเลขฐาน 2 หลักที่ 1 ไดจากตัวเลขตัวแรกของระบบเลขฐาน 2 หลักที่ 2 ไดจากตัวเลขตัวแรกบวกกับตัวที่สองในระบบเลขฐาน 2 หลักที่ 3 ไดจากตัวเลขตัวที่สองบวกกับตัวที่สามในระบบเลขฐาน 2 หลักที่ 4 ไดจากตัวเลขตัวที่สามบวกกับตัวที่สี่ในระบบเลขฐาน 2 ระบบเลขฐาน 10 0 1 2 3 4 5 6 7 8 9 ระบบเลขฐาน 2 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 Gray Code 0000 0001 0011 0010 0110 0111 0101 0100 1100 1101
  5. 5. รหัสขอมูล รหัส 8421 เปนรหัสที่แปลงมาจากระบบเลขฐาน 2 8421 มาจากคาประจําตําแหนงของ 1(8) + 1(4) + 1(2) + 0(1) เชนสามารถเขียน 192510 ดวยรหัส 8421 ไดดังนี้ 1 = 0(8) + 0(4) + 0(2) + 1(1) 0001 9 = 1(8) + 0(4) + 0(2) + 1(1) 1001 2 = 0(8) + 0(4) + 1(2) + 0(1) 0010 5 = 0(8) + 1(4) + 0(2) + 1(1) 0101 ดังนั้น 192510 แทนดวย 0001 1001 0010 0101
  6. 6. BCD เปนรหัสที่ใชเลขฐาน 2 แทนเลขฐาน 10 6 บิต แทน 1 สัญลักษณ 2 บิตแรกเปน Zone Bit 4 บิตหลังเปน Numeric Bit ขอมูลที่เปนตัวเลข Zone Bit จะกําหนดเปน 00 7 = 00 0111 734 = 000111000011000100 1248AB Zone Bit Numeric Bit
  7. 7. BCD (ตอ) ขอมูลที่เปนตัวอักษร Zone Bit จะแบงเปน 3 กลุม A – I แทนดวย 11 J – R แทนดวย 10 S – Z แทนดวย 01
  8. 8. EBCDIC เปนรหัสที่ขยายมาจาก BCD โดยบริษัท IBM ใชกับเครื่องคอมพิวเตอร 360 ขยายรหัสออกเปน 8 bit แทนสัญลักษณ 1 ตัว ให 4 bit แรกเปน Zone Bit ให 4 bit หลังเปน Numeric Bit 4 1281248 Zone Bit Numeric Bit
  9. 9. EBCDIC การสงขอมูลหรือคําสั่งในคอมพิวเตอร ในรูปเลขฐาน 16 (Hexadecimal) จากนั้นจึงแปรเปนเลขฐาน 2 (Hexadecimal Loader) ขอมูลที่เปนตัวเลขจะมี Zone Bit กําหนดเปน 1111 9 = 1111 1001 2360 = 11110010111100111111011011110000 ขอมูลที่เปนตัวอักษร Zone Bit จะกําหนดดังนี้ A – I แทนดวย 1100 = C16 J – R แทนดวย 1101 = D16 S – Z แทนดวย 1110 = E16 a – i แทนดวย 1000 = 816 j – r แทนดวย 1001 = 916 s – z แทนดวย 1010 = A16
  10. 10. ASCII รหัสมาตรฐานของวงการคอมพิวเตอร โดย ISO (International Standardization Organization) ในยุคเริ่มแรกเปนแบบ 7 bit ใชกับสัญลักษณในภาษาอังกฤษ ภายหลังมีการขยายขอบเขตเปน 8 bit เพื่อรองรับภาษาอื่นๆ เก็บเปนเลขฐาน 10 เพื่องายตอการจํา เชน อักษร “A” “A” 6510 4116 010000012
  11. 11. ASCII
  12. 12. ASCII
  13. 13. ASCII ฟ ภ ม ย ร ฤ ล ฦ ว ศ ษ ส ห ฬ อ อักขระ BF C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD รหัส ฐาน 16 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 รหัส ฐาน 10 ฐ ฑ ฒ ณ ด ต ถ ท ธ น บ ป ผ ฝ พ B0 B1 B2 B3 B4 B5 B6 B7 B8 B9 BA BB BC BD BE 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 ก ข ฅ ฃ ฅ ฆ ง จ ฉ ช ซ ฌ ญ ฎ ฏ A1 A2 A3 A4 A5 A6 A7 A8 A9 AA AB AC AD AE AF 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 อักขระรหัส ฐาน 16 รหัส ฐาน 10 อักขระรหัส ฐาน 16 รหัส ฐาน 10
  14. 14. ASCII ๎ ๏ ๐ ๑ ๒ ๓ ๔ ๕ ๖ ๗ ๘ ๘ ๚ ๛ อักขระ EE EF F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 FA FB รหัสฐาน 16 238 239 240 241 242 243 244 245 246 247 248 249 250 251 รหัสฐาน 10 เ แ โ ใ ไ ๅ ๆ ็      ํ E0 E1 E2 E3 E4 E5 E6 E7 E8 E9 EA EB EC ED 224 225 226 227 228 229 230 231 232 233 234 235 236 237 ฮ ฯ ะ ั า ำ ิ ี ึ ื ุ ู . ฿ CE CF D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 DA DF 206 207 208 209 210 211 212 213 214 215 216 217 218 223 อักขระรหัสฐาน 16 รหัสฐาน 10 อักขระรหัสฐาน 16 รหัส ฐาน 10
  15. 15. Computer Code and Binary Arithmetic EX1 การเขารหัสและถอดรหัส (Encoding and Decoding) จงเขารหัส (Encoding) ของ “Jon Loves Ann.” ในรูปของ ASCII จงถอดรหัส ASCII ของขอความตอไปนี้ 011 0001 010 1001 011 0001 011 1101 011 0010 วิธีทํา J 100 1010 o 110 1111 n 110 1110 Space 010 0000 L 100 1100 o 110 1111 v 111 0110 e 110 0101 s 111 0011 Space 010 0000 A 100 0001 n 110 1110 n 110 1110 . 110 0000 Jon Loves Ann. 10010101101111110111001000001001100110111111101101100101111001 101000001000001110111011011101100000
  16. 16. Computer Code and Binary Arithmetic EX1 (ตอ) 011 0001 010 1001 011 0001 011 1101 011 0010 วิธีทํา ดังนั้น 011 0001 010 1001 011 0001 011 1101 011 0010 “1 + 1 = 2” 011 0001 = 1 010 1011 = + 011 0001 = 1 011 1101 = = 011 0010 = 2
  17. 17. Computer Code and Binary Arithmetic EX2 จงเขารหัสชื่อนาม-สกุลของตนเองในรูป ASCII ภาษาอังกฤษ ภาษาไทย วิธีทํา “Chaiyanan Sompong” ดังนั้นจะได 1000011 1101000 1100001 1101001 1111001 … Space 010 0000 S 101 0011 o 110 1111 m 110 1101 p 111 0000 o 110 1111 n 110 1110 g 110 0111 C 100 0011 h 110 1000 a 110 0001 i 110 1001 y 111 1001 a 110 0001 n 110 1110 a 110 0001 n 110 1110
  18. 18. การเขาและถอดรหัสแบบ BASE64 Information Security การเปลี่ยนชุด string หนึ่งไปเปนอีกชุด string หนึ่ง ปองกันการเขาถึงขอมูล http://www.faqs.org/rfcs/rfc3548.html BASE64 คือรหัสขอมูลที่ใชเลขฐาน 2 จํานวน 6 bit แทนตัวอักษรภาษาอังกฤษและตัวเลข
  19. 19. การเขาและถอดรหัสแบบ BASE64 ตารางรหัส BASE64 n o p q r s t u v w x y z 39 40 41 42 43 44 45 46 47 48 49 50 51 a b c d e f g h i j k l m 26 27 28 29 30 31 32 33 34 35 36 37 38 N O P Q R S T U W W X Y Z 13 14 15 16 17 18 19 20 21 22 23 24 25 A B C D E F G H I J K L M 0 1 2 3 4 5 6 7 8 9 10 11 12 ตัวอักษรเลขฐาน 10ตัวอักษรเลขฐาน 10ตัวอักษรเลขฐาน 10ตัวอักษรเลขฐาน 10
  20. 20. การเขาและถอดรหัสแบบ BASE64 ตารางรหัส BASE64 0 1 2 3 4 5 6 7 8 9 Space _ 52 53 54 55 56 57 58 59 60 61 62 63 ตัวอักษรเลขฐาน 10
  21. 21. การเขาและถอดรหัสแบบ BASE64 ขั้นตอนการเขารหัสแบบ BASE64 EX3 จงเขารหัส “Chaiyanan” ดวย BASE64 วิธีทํา เปลี่ยน “Chaiyanan” ใหอยูในรูปของเลขฐาน 2 โดย ASCII จาก EX2 เติม bit 0 เขาไป bit แรกสุดใหครบ 8 bit จะไดวา จากนั้นจัดเรียง bit ใหมจากดานซายใหเปนกลุมละ 6 bit จะได 01000011 01101000 01100001 01101001 01111001 01100001 01101110 01100001 01101110 010000 110110 100001 100001 011010 010111 100101 100001 011011 100110 000101 101110
  22. 22. การเขาและถอดรหัสแบบ BASE64 ขั้นตอนการเขารหัสแบบ BASE64 EX3 (ตอ) เปลี่ยนเลขฐาน 2 แบบ 6 bit ที่ไดใหเปนเลขฐาน 10 จะได เมื่อนําไปเปรียบเทียบกับตาราง BASE64 จะไดอักษรดังนี้ 16 52 33 33 26 23 37 33 27 38 5 46 010000 110110 100001 100001 011010 010111 100101 100001 011011 100110 000101 101110 เลขฐาน 2 เลขฐาน 10 Q2hhaXlhbmFu
  23. 23. การเขาและถอดรหัสแบบ BASE64 กรณีที่เมื่อมีการจัดกลุมเลขฐาน 2 กลุมละ 6 bit ถา bit กลุมสุดทายมี 2 หรือ 4 bit ใหเพิ่ม bit 0 เขาไปใหครบ 6 bit โดยใน BASE64 จะนับ bit สุดทายที่เปน 00 แทนดวย = เชน xxxxxx xxxxxx … … … 011101 110000 เมื่อเปลี่ยนเปนรหัส BASE64 จะได … dw== ขั้นตอนการถอดรหัส BASE64 นําเอาชุดของ string เปลี่ยนเปนเลขฐาน 2 ตามตาราง BASE64 จัดกลุมของเลขฐาน 2 เปนกลุมละ 8 bit นําตัวเลขกลุมละ 8 bit ไปเทียบกับตาราง ASCII จะได string ของ ACSII
  24. 24. การเขาและถอดรหัสแบบ BASE64 EX4 จงถอดรหัส BASE64 ของ “VGhhaVNoYWRvdw==” วิธีทํา นําขอความมาเปรียบเทียบกับตาราง BASE64 ไดเลขฐาน 10 คือ 21 6 33 33 26 21 13 40 24 22 17 47 29 48 เปลี่ยนเปนเลขฐาน 2 จะได...

×