ภาพนิ่ง 1

Download Report

Transcript ภาพนิ่ง 1

ข้อมูลในคอมพิวเตอร์
คอมพิวเตอร์ทำงำนด้วยหลักกำรทำงอิเล็กทรอนิกส์ที่ใช้สัญญำณ
ทำงไฟฟ้ ำแทนตัวเลขศูนย์และหนึ่ง ซึ่งเป็ นตัวเลขในระบบเลขฐำนสอง แต่
ละหลักเรี ยกว่ำบิต (binary digit : bit) และเมื่อนำตัวเลขหลำยๆ
บิตมำเรี ยงกัน จะใช้สร้ำงรหัสแทนจำนวน อักขระหรื อสัญลักษณ์ท้ งั
ภำษำไทยและภำษำอังกฤษได้ และเพื่อให้กำรแลกเปลี่ยนข้อควำมระหว่ำง
มนุษย์กบั คอมพิวเตอร์เป็ นไปในแนวเดียวกัน จึงมีกำรกำหนดมำตรฐำน
รหัสแทนข้อมูลในระบบเลขฐำนสองขึ้น โดยรหัสมำตรฐำนที่นิยมใช้กนั
มำกมีสองกลุ่ม คือ รหัสแอสกีและรหัสเอ็บซิดิก
ระบบเลขฐำนสอง
ิ
เลขฐานสบ
เลขฐานสอง
เลขฐานแปด
ิ หก
เลขฐานสบ
0
0000
0
0
1
0001
1
1
2
0010
2
2
3
0011
3
3
4
0100
4
4
5
0101
5
5
6
0110
6
6
7
0111
7
7
8
1000
10
8
9
1001
11
9
10
1010
12
A
11
1011
13
B
12
1100
14
C
13
1101
15
D
14
1110
16
E
15
1111
17
F
กำรแปลงเลขฐำนสิ บเป็ นฐำนสอง
คำศัพท์ที่จำเป็ นต้องทำควำมรู ้จกั เพื่อให้เข้ำใจตรงกันในกำรดำเนินกำร
ต่ำงๆ ในระบบเลขฐำนสองมีดงั นี้
(ก) บิต (bit) คือหลักแต่ละหลักในระบบเลขฐำนสอง เช่น 110
ประกอบด้วย 3 บิต
(ข) บิตที่มีนยั สำคัญสูงสุ ด (most significant bit : MSB) คือบิตที่อยูซ่ ำ้ ยมือสุ ด
เป็ นบิตที่มีค่ำประจำหลักมำกที่สุด เช่น 100 บิตที่มีนยั สำคัญสู งสุ ดคือ 1 มีค่ำประจำ
หลักเป็ น 2 power 2
(ค) บิตที่มีนยั สำคัญต่ำสุ ด (least significant bit : LSB) คือบิตที่อยูข่ วำมือสุ ด
ซึ่ งเป็ นบิตที่มีค่ำประจำหลักน้อยที่สุดเช่น 110 บิตที่มีนยั สำคัญต่ำสุ ดคือ 0 มีค่ำประจำ
หลักเป็ น 2power0 ให้สังเกตว่ำค่ำประจำหลักของบิตที่มีนยั สำคัญต่ำสุ ดจะมีค่ำเป็ น
2 power0 เสมอ
กำรแปลงเลขฐำนสองเป็ นฐำนสิ บ
กำรแปลงเลขฐำนสองกลับเป็ นเลขฐำนสิ บต้องอำศัยค่ำประจำหลักของแต่
ละบิตในเลขฐำนสองที่ตอ้ งกำรแปลง โดยเรำจะแยกตัวเลขในแต่ละบิตมำคูณด้วยค่ำ
ประจำหลักแล้วนำผลลัพธ์จำกกำรคูณดังกล่ำวมำรวมกัน จะได้เลขฐำนสิ บที่มีค่ำตรง
กับเลขฐำนสองดังตัวอย่ำงต่อไปนี้
กำรแปลงเลขฐำนสิ บเป็ นฐำนสอง
2)29
1. เริม
่ ต ้นโดยเอา 29 ตัง้ แล ้วหารด ้วย 2
2)14
เศษ
1
2. จากข ้อ 1 ได ้ผลลัพธ์เป็ น 14 เศษ 1
2)7_
เศษ
0
3. ผลลัพธ์จากข ้อ 2 หารด ้วย 2 ผลลัพธ์เป็ น 7 เศษ 0
2)3_
เศษ
1
4. ผลลัพธ์จากข ้อ 3 หารด ้วย 2 ผลลัพธ์เป็ น 3 เศษ 1
2)1_
เศษ
1
5. ผลลัพธ์จากข ้อ 4 หารด ้วย 2 ผลลัพธ์เป็ น 1 เศษ 1
0
เศษ
1
6. ผลลัพธ์จากข ้อ 5 หารด ้วย 2 ผลลัพธ์เป็ น 0 เศษ 1
111012
7. เมือ
่ หารจนกระทั่งผลหารเป็ น 0 เขียนเศษทัง้ หมดที่
ได ้จากการหารทัง้ หมดเรียงกันจากล่างขึน
้ บน จะได ้
รูปแบบของเลขฐานสองทีม
่ ค
ี า่ เท่ากับ 2910
กำรแปลงเลขฐำนสองเป็ นฐำนสิ บ
100012
= (1 x 24) + (0 x 23) + (0 x 22) + (0 x 21) + (1 x 20)
= 16 + 0 + 0 + 0 +1
= 17
1001112
= (1 x 25) + (0 x 24) + (0 x 23) + (1 x 22) + (1 x 21) + (1 x 20)
= 32 + 0 + 0 + 4 + 2 + 1
= 39
กำรบวกเลขฐำนสอง
ตัวอย่ำงที่ 1 แสดงกำรหำค่ำ 1001 + 1111
กำรลบเลขฐำนสอง
กำรลบเลขฐำนสองก็เช่นเดียวกับกำรลบเลขฐำนสิ บ คือพิจำรณำเอำเลขที่
เป็ นตัวตั้งลบด้วยตัวลบทีละหลัก หำกตัวตั้งเป็ น 1 ตัวลบเป็ น 0 ผลลัพธ์ได้เป็ น 1
แต่ถำ้ ตัวตั้งเป็ น 0 และตัวลบเป็ น 1 ต้องมีกำรดึงค่ำในหลักที่อยูท่ ำงซ้ำยมำได้ผล
ลัพธ์เป็ น 1 และมีผลให้ค่ำของหลักที่ถกู ดึงมำมีค่ำเป็ น
ตัวอย่ำงที่ 2 แสดงกำรหำค่ำ 10011 - 1010
เมื่อมนุษย์สำมำรถแปลงเลขฐำนสิ บเป็ นฐำนสอง และแปลงเลขฐำนสอง
กลับเป็ น เลขฐำนสิ บได้ ก็สำมำรถเขียนโปรแกรมเพื่อสั่งกำรคอมพิวเตอร์ ทำงำนได้
ตำมที่ตอ้ งกำร และพัฒนำวิธีกำรในกำรสื่ อสำรหรื อสั่งกำรคอมพิวเตอร์ มำเรื่ อยๆ จน
ในปั จจุบนั ผูใ้ ช้คอมพิวเตอร์ ทวั่ ไปอำจไม่ตอ้ งทำควำมเข้ำใจกำรทำงำนของ
คอมพิวเตอร์ อย่ำงลึกซึ้ งเช่นนี้ เนื่องจำกมีบุคลำกรที่ทำหน้ำที่คิดค้นโปรแกรมที่
สำมำรถรับข้อควำม หรื อคำสั่งในรู ปแบบของภำษำและระบบตัวเลขที่ผใู ้ ช้คุน้ เคย
แล้วแปลควำมหมำยเป็ นเลขฐำนสองก่อนส่ งให้เครื่ องคอมพิวเตอร์ ประมวลผล
รหัสแอสกี
รหัสแอสกี (American Standard Code Information
Interchange :ASCII) เป็ นมำตรฐำนที่นิยมใช้กนั มำกในระบบคอมพิวเตอร์
และระบบสื่ อสำรข้อมูล รหัสแทนข้อมูลชนิดนี้ใช้เลขฐำนสองจำนวน 8 บิตหรื อ
เท่ำกับ 1 ไบต์แทนอักขระหรื อสัญลักษณ์แต่ละตัว ซึ่ ง หมำยควำมว่ำกำรแทนอักขระ
แต่ละตัวจะประกอบด้วยตัวเลขฐำนสอง 8 บิตเรี ยงกัน ซึ่ งลำดับของแต่ละบิตเป็ นดังนี้
รหัสแอสกี
จำกหลักกำรของระบบเลขฐำนสอง แต่ละบิตสำมำรถแทนค่ำได้ 2 แบบ คือ
เลข 0 หรื อเลข 1 ถ้ำเรำเขียนเลขฐำนสองเรี ยงกัน 2 บิตในกำรแทนอักขระ เรำจะมี
รู ปแบบในกำรแทนอักขระได้ 2power2 หรื อ 4 รู ปแบบ คือ 00 , 01 , 10 และ11 ดังนั้น
ในกำรใช้รหัสแอสกีซ่ ึ งมี 8 บิตในกำรแทนอักขระแล้ว เรำจะมีรูปแบบที่ใช้แทนได้ถึง
2power 8 หรื อ 256 รู ปแบบ ซึ่ งเมื่อใช้แทนตัวอักษรภำษำอังกฤษแล้วยังมีเหลืออยู่
สำนักงำนมำตรฐำนผลิตภัณฑ์อุตสำหกรรม หรื อ สมอ. จึงได้กำหนดรหัสภำษำไทย
เพิ่มลงไปเพื่อให้ใช้งำนร่ วมกัน ตำมตำรำงแสดงรหัส ASCII
b7
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
b6
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
b5
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
b4
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
@
P
'
p
ฐ
ภ
ะ
เ
๐
b3
b2
b1
b0
0
0
0
0
0
0
0
1
!
1
A
Q
a
q
ก
ฑ
ม
-ัั
แ
๑
0
0
1
0
"
2
B
R
b
r
ข
ฒ
ย
า
โ
๒
0
0
1
1
#
3
C
S
c
s
ฃ
ณ
ร
-ัา
ไ
๓
0
1
0
0
$
4
D
T
d
t
ค
ด
ฤ
-ัิ
า
๔
0
1
0
1
%
5
E
U
e
u
ฅ
ต
ล
-ัี
ๆ
๕
0
1
1
0
&
6
F
V
f
v
ฆ
ถ
ฦ
-ัึ
-ั็
๖
0
1
1
1
'
7
G
W
g
w
ง
ท
ว
-ัื
-ั่
๗
1
0
0
0
(
8
H
X
h
x
จ
ธ
ศ
-ั
-ั ้
๘
1
0
0
1
)
9
I
Y
i
y
ฉ
น
ษ
-ัู
-ั
๙
1
0
1
0
*
:
J
Z
j
z
ช
บ
ส
-ั
¶
1
0
1
1
+
;
K
[
k
{
ซ
ป
ห
-ั์
1
1
0
0
,
<
L
\
l
|
ฌ
ผ
ฬ
-ั
1
1
0
1
-
=
M
]
m
}
ญ
ฝ
อ
1
1
1
0
.
>
N
^
n
~
ฎ
พ
ฮ
1
1
1
1
/
?
O
-
o
ฏ
ฟ
ฯ
฿
รหัสเอ็บซิดิก
รหัสเอ็บซิดิก (Extended Binary Coded Decimal Interchange
Code : EBCDIC) พัฒนำโดยบริ ษทั ไอบีเอ็ม รหัสแทนข้อมูลนี้ไม่เป็ นที่
นิยมใช้แล้วในปัจจุบนั
กำรกำหนดรหัสจะใช้ 8 บิต ต่อหนึ่งอักขระ เหมือนกับรหัสแอสกี แต่
แบบของรหัสที่กำหนดจะแตกต่ำงกัน โดยรหัสเอ็บซิดิกจะเรี ยงลำดับแต่ละ
บิตที่ใช้แทนอักขระดังนี้
รหัสเอ็บซิดิก
รหัสยูนิโค้ด (Unicode)
รหัสยูนิโค้ด (Unicode) เป็ นรหัสที่สร้ำงขึ้นมำในระยะหลังที่มีกำรสร้ำงแบบ
ตัวอักษรของภำษำต่ำงๆ รหัสยูนิโค้ดเป็ นรหัสที่ต่ำงจำก 2 ชนิดที่ได้กล่ำวมำข้ำงต้น คือ
ใช้เลขฐำนสอง 16 บิตในกำรแทนตัวอักษร เนื่องจำกที่มำของกำรคิดค้นรหัสชนิ ดนี้
คือ เมื่อมีกำรใช้งำนคอมพิวเตอร์ ในหลำยประเทศและมีกำรสร้ำงแบบตัวอักษร (font)
ของภำษำต่ำงๆ ทัว่ โลก ในบำงภำษำเช่น ภำษำจีน และภำษำญี่ปุ่น เป็ นภำษำที่เรี ยกว่ำ
ภำษำรู ปภำพซึ่ งมีตวั อักษรเป็ นหมื่นตัว หำกใช้รหัสที่เป็ นเลขฐำนสอง 8 บิต เรำ
สำมำรถแทนรู ปแบบตัวอักษรได้เพียง 256 รู ปแบบที่ได้อธิบำยมำข้ำงต้น ซึ่ งไม่
สำมำรถแทนตัวอักษรได้ครบ จึงสร้ำงรหัสใหม่ข้ ึนมำที่สำมำรถแทนตัวอักขระได้ถึง
65,536 ตัว ซึ่ งมำกพอและสำมำรถแทนสัญลักษณ์กรำฟิ กและสัญลักษณ์ทำง
คณิ ตศำสตร์ได้อีกด้วย
การจัดเก็บข้ อมูลในหน่ วยความจา
หน่วยควำมจำหลักของคอมพิวเตอร์ เป็ นที่เก็บข้อมูลและคำสั่งในขณะ
ประมวลผล กำรเก็บข้อมูลในหน่วยควำมจำเป็ นกำรเก็บรหัสตัวเลขฐำนสอง ข้อมูลที่
ใช้ในกำรประมวลผลทั้งตัวเลขหรื อตัวอักขระจะได้รับกำรแทนเป็ นตัวเลขฐำนสอง
แล้วเก็บไว้ในหน่วยควำมจำ เช่น ข้อควำมว่ำ BANGKOK เก็บในคอมพิวเตอร์ จะแทน
เป็ นรหัสเรี ยงกันไป ดังนี้
หน่วยควำมจำของไมโครคอมพิวเตอร์ ที่ใช้
กันอยูใ่ นขณะนี้ มีขนำดควำมกว้ำง 8 บิต
และเก็บข้อมูลเรี ยงกันไป โดยมีกำรกำหนด
ตำแหน่งซึ่ งเรี ยกว่ำ ตำแหน่งที่อยู่
(address)
B
01000010
A
01000001
N
01001110
G
01000111
K
01001011
O
01001111
K
01001011
บิตพำริ ตี (parity bit)
เพื่อให้ขอ้ มูลที่เก็บมีควำมถูกต้อง กำรเขียนหรื ออ่ำนทุกครั้งจึงต้อง
ตรวจสอบควำมถูกต้องของข้อมูล วิธีที่ง่ำยและนิยมใช้กนั คือกำรเพิ่ม
บิตพำริ ตี (parity bit) เพื่อตรวจสอบจำนวนเลข 1 ในรหัสแทนข้อมูลว่ำมี
จำนวนคู่ หรื อจำนวนคี่ ตัวอย่ำงเช่น พำริ ตีคู่ (even parity) ซึ่งเป็ นกำรทำให้
จำนวนของเลข 1 เป็ นจำนวนคู่ บิตพำริ ตีที่เติมสำหรับข้อมูลตัวอักษร A
และ E เป็ นดังนี้
บิตพำริ ตี (parity bit)
A
01000001
<-- บิตพำริ ตี
E
01000101
<-- บิตพำริ ตี
ข้อมูล A มีเลข 1 สองตัว ซึ่ งเป็ นจำนวนคู่ จึงใส่ บิตพำริ ตีเป็ นเลข 0
ข้อมูล E มีเลข 1 เป็ นจำนวนคี่ จึงใส่ บิตพำริ ตีเป็ น 1 เพื่อให้มีเลข 1 เป็ นจำนวนคู่
เมื่อต้องกำรตรวจสอบควำมถูกต้องของข้อมูล ให้พิจำรณำ
จำนวนของเลข 1 ที่ปรำกฏในรหัสแทนข้อมูลนั้นร่ วมกับบิตพำริ ตี ถ้ำ
มีเป็ นจำนวนคู่แสดงว่ำข้อมูลถูกต้อง แต่ถำ้ ได้เป็ นจำนวนคี่แสดงว่ำ
ข้อมูลไม่ถูกต้อง
หน่วยประมวลผลกลำง (Central Processing Unit : CPU)
หรื อที่เรี ยกกันทัว่ ไปว่ำซี พียู ทำกำรอ่ำนคำสัง่ จำกหน่วยควำมจำมำแปล
ควำมหมำย และกระทำตำมคำสั่ง กำรแปลควำมหมำยคำสั่ง หมำยถึง กำรนำคำสั่งซึ่ ง
เขียนขึ้นด้วยภำษำคอมพิวเตอร์ ภำษำใดภำษำหนึ่ งมำแปลงให้เป็ นภำษำคอมพิวเตอร์
ระดับพื้นฐำนที่เรี ยกว่ำ ภำษำเครื่ อง (machine language) ซึ่ งมีลกั ษณะเป็ นรหัส
เลขฐำนสอง คอมพิวเตอร์ เครื่ องหนึ่งมีคำสั่งที่ใช้ได้หลำยร้อยคำสั่ง แต่ละคำสั่งจะมี
ควำมหมำยเฉพำะ เช่น คำสัง่ นำข้อมูลที่มีค่ำเป็ น 3 จำก หน่วยควำมจำตำแหน่งที่ 8000
มำบวกกับข้อมูลที่มีค่ำเป็ น 5 ในตำแหน่งที่ 8001 ผลลัพธ์ที่ได้ให้เก็บไว้ใน
หน่วยควำมจำตำแหน่งที่ 8002 เมื่อเขียนคำสั่งเป็ นภำษำเครื่ องจะมีลกั ษณะเป็ น
เลขฐำนสองเรี ยงต่อกันเป็ นจำนวนมำก ซึ่ งเข้ำใจได้ยำก จึงมักใช้ตวั อักษรแทนรหัส
ภำษำเครื่ องเหล่ำนี้ ดังตัวอย่ำงแสดงในรู ป
ตัวอย่ำงภำษำคอมพิวเตอร์
ต ัวอ ักษรแทนรห ัสภาษาเครือ
่ ง
ภาษาเครือ
่ ง
LD
A,(8000)
00111010,00000000,10000000
LD
B,A
01000111
LD
A,(8001)
00111010,00000001,10000000
ADD
A,B
10000000
LD
(8002),A
00110010,00000010,10000000
ตัวอย่ำงภำษำคอมพิวเตอร์
รหัสภำษำเครื่ องเมื่อเก็บอยูใ่ นหน่วยควำมจำของคอมพิวเตอร์ จะมีลกั ษณะ
เรี ยงต่อกันไป สมมติให้ส่วนของคำสั่งเก็บในหน่วยควำมจำเริ่ มจำกตำแหน่ง 1000
และส่ วนของข้อมูลเก็บไว้เริ่ มจำกตำแหน่ง 8000 ดังรู ป
ภำษำเครื่ องเป็ นภำษำสั่งกำรพื้นฐำนที่ใช้รหัสตัวเลขฐำนสอง คอมพิวเตอร์ที่
ใช้ หน่วยประมวลผลกลำงต่ำงตระกูลกันจะมีภำษำเครื่ องที่แตกต่ำงกัน เช่น เครื่ องที่
ใช้ซีพียู เพนเตียม (Pentium) กับซี พียทู ี่ใช้ในเครื่ องแมกอินทอช มีรหัสคำสัง่ ต่ำงกัน
รู ปกำรเก็บข้อมูลและคำสัง่ ลงในหน่วยควำมจำด้วยรหัสเลขฐำนสอง
1000
00111010
0
1001
00000000
0
1002
10000000
1
1003
01000111
0
1004
00111010
0
1005
00000001
1
1006
10000000
1
1007
10000000
1
1008
00110010
1
1009
00000010
1
1010
10000000
1
.
.
.
.
.
.
.
.
.
8000
00000011
8001
00000101
.
8002
00001000
0
0
1