๐Ÿ’ปComputer/Computer concept&practice

2. Bits, Data Types, and Operations

Physical Coach 2022. 4. 27. 21:14

Computer Concept & Practice(์ปดํ“จํ„ฐ ๊ฐœ๋… ๋ฐ ์‹ค์Šต)

์ปดํ“จํ„ฐ์— ๋Œ€ํ•ด์„œ ๋ฐฐ์šฐ๊ธฐ์ „์— ๊ฐœ๋ก ์˜ ์—ญํ• ์„ ํ•˜๋Š” "Computer Concept & Practice(์ปดํ“จํ„ฐ ๊ฐœ๋… ๋ฐ ์‹ค์Šต)" ์ˆ˜์—….
์ปดํ“จํ„ฐ๋ฅผ ์ฒ˜์Œ ์ ‘ํ•˜๋Š” ํ•™์ƒ๋“ค์„ ๋Œ€์ƒ์œผ๋กœ ์ปดํ“จํ„ฐ์— ๋Œ€ํ•œ ์ผ๋ฐ˜์ ์ธ ๊ธฐ์ดˆ๊ฐœ๋… ๋“ฑ์„ ์„ค๋ช…ํ•˜๊ณ , ํ”„๋กœ๊ทธ๋žจ์ด ์ˆ˜ํ–‰๋˜๋Š” ๊ณผ์ •๊ณผ ํ”„๋กœ๊ทธ๋žจ ์ž‘์„ฑ์„ ์œ„ํ•œ ๋…ผ๋ฆฌ์ ์ธ ์‚ฌ๊ณ ์— ๋Œ€ํ•˜์—ฌ ๊ฐ•์˜ํ•œ๋‹ค.

์˜ค๋Š˜ ๊ฐ•์˜์—์„œ๋Š” ์ปดํ“จํ„ฐ๊ฐ€ ์ •๋ณด๋ฅผ ํ‘œํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์ฃผ์š”๊ฐœ๋…์„ ์•Œ์•„๋ณด์ž.

์ปดํ“จํ„ฐ์•ˆ์—์„œ๋Š” ๋ชจ๋“  ์ •๋ณด๊ฐ€ 0,1๋กœ ํ‘œ์‹œ๋œ๋‹ค. (binary๋กœ)
์ด๊ฑธ ์ด์šฉํ•ด ์ปดํ“จํ„ฐ๊ฐ€ ์–ด๋–ป๊ฒŒ ๋‹ค์–‘ํ•œ data๋ฅผ ํ‘œํ˜„ํ•˜๋Š”๊ฐ€์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด๋„๋ก ํ•˜๊ฒ ๋‹ค.

Computer is a "binary" "digital" system.


Digital system: ํ‘œํ˜„ํ•˜๋Š” symbol(์ •๋ณด)์ด finite(์œ ํ•œ)ํ•œ ๊ฐฏ์ˆ˜๊ฐ€ ์žˆ๋Š” system
Binary(base two) system: ํ‘œํ˜„ํ•˜๋Š” symbol์ด 0๊ณผ 1 ๋งŒ ์žˆ๋Š” system
์ปดํ“จํ„ฐ๋Š” binary digital system์ด๋ฏ€๋กœ,
0๊ณผ1๋กœ ์œ ํ•œํ•œ ์–‘์˜ ์ •๋ณด๋ฅผ ํ‘œํ˜„ํ•ด๋‚ด๋Š” ์‹œ์Šคํ…œ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ด๋„ ๋  ๊ฒƒ ๊ฐ™๋‹ค.
์‹ค์ œ ์ปดํ“จํ„ฐ์•ˆ์—์„œ๋Š” ๋Œ€๋ถ€๋ถ„ voltage(์ „์••)์œผ๋กœ 0๊ณผ1์„ ํ‘œํ˜„ํ•˜๊ฒŒ ๋œ๋‹ค.

์˜ˆ๋ฅผ ๋“ค๋ฉด, ์œ„์˜ ๊ทธ๋ฆผ ์ฒ˜๋Ÿผ 0~0.5 volt ์‚ฌ์ด๋ฅผ "0"์œผ๋กœ ํ‘œํ˜„ํ•˜๊ณ , 2.4~2.9 volt ์‚ฌ์ด๋ฅผ "1"๋กœ ํ‘œํ˜„ํ•œ๋‹ค.
(์‹ค์ œ ์ •ํ™•ํ•œ volt๋Š” ๋‹ค ๋‹ค๋ฅด๊ฒ ์ง€๋งŒ, 0๊ณผ 1์˜ ํ‘œํ˜„ ์‚ฌ์ด์— illegalํ•œ ๊ณต๊ฐ„(๋นˆ๊ณต๊ฐ„)์„ ๋‘์–ด์„œ ์•ˆ์ •์„ฑ์„ ํ™•๋ณดํ•˜๋Š” ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.)
์ปดํ“จํ„ฐ์—์„œ ์ •๋ณด๋ฅผ ํ‘œํ˜„ํ•˜๋Š” ๊ธฐ๋ณธ ์œ ๋‹›์€ binary digit ๋˜๋Š” bit ๋ผ๊ณ  ํ•œ๋‹ค.
1bit๋กœ๋Š” 0๊ณผ 1์„ ํ‘œํ˜„ ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ๊ทธ ์ด์ƒ์„ ํ‘œํ˜„ ํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด ๋” ๋งŽ์€ bit๊ฐ€ ํ•„์š”ํ•  ๊ฒƒ์ด๋‹ค.
ex) 2๊ฐœ์˜ bit๋กœ๋Š” 4๊ฐœ์˜ ์ƒํƒœ๋ฅผ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค.
00, 01, 10, 11
ex2) 3๊ฐœ์˜ bit๋กœ๋Š” 8๊ฐœ์˜ ์ƒํƒœ๋ฅผ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค.
000, 001, 010, 011, 100, 101, 110, 111
2๊ฐœ์˜ bit๋กœ๋Š” 2์˜ 2์Šน์ธ 4๊ฐœ
3๊ฐœ์˜ bit๋กœ๋Š” 2์˜ 3์Šน์ธ 8๊ฐœ์˜ ์ƒํƒœ๋ฅผ ํ‘œํ˜„ ํ•  ์ˆ˜ ์žˆ๋‹ค.
ํ•œ ๋งˆ๋””๋กœ 'n'๊ฐœ์˜ bit๊ฐ€ ํ‘œํ˜„ ํ•  ์ˆ˜ ์žˆ๋Š” ์ƒํƒœ๋Š” '2์˜ n์Šน'๊ฐœ์ด๋‹ค.

๊ทธ๋Ÿผ ์ด๊ฒƒ๋“ค์„ ํ†ตํ•ด ์šฐ๋ฆฌ๋Š” ์–ด๋–ค ์ข…๋ฅ˜์˜ data๋ฅผ ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ์„๊นŒ?

ํฌ๊ฒŒ๋Š” instruction๊ณผ data๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ๋‹ค.
instruction - ์‹ค์ œ ์ปดํ“จํ„ฐ์—์„œ ์ž‘์—…์ด ์ผ์–ด๋‚˜๋Š” ์œ ๋‹›, ์ด instruction ๋‹ค์–‘ํ•œ data๋ฅผ ์ฒ˜๋ฆฌํ•œ๋‹ค.
data์˜ ์ข…๋ฅ˜
Numbers- integers(์ •์ˆ˜), floating point(๋ถ€๋™์†Œ์ˆ˜์ ).
[complex๋ณต์†Œ์ˆ˜, rational์œ ๋ฆฌ์ˆ˜, irrational๋ฌด๋ฆฌ์ˆ˜ ๋“ฑ๋“ฑ๋„ ํ‘œํ˜„ ๊ฐ€๋Šฅํ•˜์ง€๋งŒ, ๊ทธ๊ฒƒ์€ ์œ„์˜ 2๊ฐ€์ง€ built in data๋‚ด์žฅ๋ฐ์ดํ„ฐ(integers, floationg point)๋ฅผ ์ด์šฉํ•˜์—ฌ ํ‘œํ˜„ํ•˜๋Š” ๋ถ€์ˆ˜์ ์ธ ๊ฒƒ๋“ค์ด๋‹ค.]
Logical - ture, false
Text - characters, strings, ...
Images - pixels, colors, shapes, ...
Sound
๋“ฑ๋“ฑ
(ํšŒ์ƒ‰์œผ๋กœ ์ฒ˜๋ฆฌ ๋œ ๊ฒƒ๋“ค์€, built in data๋ฅผ ์ด์šฉํ•˜์—ฌ ํ‘œํ˜„ํ•˜๋Š” data๋“ค์ด๋‹ค.)

Unsigned Integers

๊ทธ๋Ÿผ ์ด์ œ ์ด๋Ÿฐ data๋“ค์„ ์–ด๋–ป๊ฒŒ ํ‘œํ˜„ํ•˜๋Š”์ง€ ์•Œ์•„๋ณด์ž.

์šฐ์„  Unsigned Integers(์Œ์˜ ์ •์ˆ˜๋ฅผ ์ œ์™ธํ•œ, ์–‘์˜ ์ •์ˆ˜)๋ฅผ ํ‘œํ˜„ํ•ด๋ณด์ž.
์šฐ๋ฆฌ๊ฐ€ ์•ž์˜ turing machine์—์„œ ๋ดค๋˜ Non-positional notation์œผ๋กœ ํ‘œํ˜„ํ•˜๋Š” ๊ฒฝ์šฐ
ex) "5" -> "11111"
"3" -> "111"
ํ•˜์ง€๋งŒ ์ด๋Ÿฐ ๋‹จ์ˆœํ•œ ๋‚˜์—ด์ธ non-positional notation์œผ๋กœ ํฐ ์ˆ˜๋ฅผ ํ‘œํ˜„ํ•˜๋ ค๋ฉด, ์—„์ฒญ๋‚˜๊ฒŒ ๋งŽ์€ ์ˆ˜์˜ 1์ด ํ•„์š”ํ•˜๊ฒŒ ๋œ๋‹ค.
๊ทธ๋ž˜์„œ ์ด ๋ฌธ์ œ์ ์„ ํ•ด๊ฒฐํ•˜๊ณ ์ž ์•„๋ž˜๊ทธ๋ฆผ์ฒ˜๋Ÿผ,
์œ„์น˜ํ•œ ์ž๋ฆฌ๋กœ ์ˆซ์ž์˜ ํฌ๊ธฐ๋ฅผ ํ‘œํ˜„ํ•˜๋Š” ํ‘œ๊ธฐ๋ฒ•์ธ weighted positional notation์„ ์‚ฌ์šฉํ•œ๋‹ค.

weighted positional notation์˜ ํ•˜๋‚˜์ธ ์‹ญ์ง„๋ฒ•๊ณผ ์ด์ง„๋ฒ•

์ด๋ ‡๊ฒŒ position์— ๋”ฐ๋ผ ์ˆซ์ž๊ฐ€ ๋‹ค๋ฅด๊ฒŒ ํ•ด์„๋˜๋Š” ํ‘œ๊ธฐ๋ฒ•์„ weighted positional notation์ด๋ผ๊ณ  ํ•œ๋‹ค.
๊ทธ๋Ÿผ ๊ณ„์†ํ•ด์„œ Unsigned Integers๋ฅผ bit๋กœ ํ‘œํ˜„ ํ•œ๋‹ค๋ฉด 2์˜ n ์Šน ๋งŒํผ์˜ ๊ฐ’์„ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ์ด๋‹ค.
(์•„๋ž˜ ๊ทธ๋ฆผ์ฒ˜๋Ÿผ, '0'๋ถ€ํ„ฐ '2์˜ n์Šน - 1' ๊นŒ์ง€!)
๋˜ํ•œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋”ํ•˜๊ธฐ๋„ ๊ฐ€๋Šฅํ•  ๊ฒƒ์ด๋‹ค.
10010 + 1001 = 11011
10111 + 111 = ? ์˜ ๊ฐ’๋„ ํ•œ๋ฒˆ ๊ตฌํ•ด๋ณด์ž!

3๊ฐœ์˜ bit๋กœ๋Š” '0'๋ถ€ํ„ฐ '2์˜ 3์Šน - 1' ๊นŒ์ง€ ์ฆ‰, '0' ๋ถ€ํ„ฐ '7'๊นŒ์ง€ 8๊ฐœ์˜ ํ‘œํ˜„์ด ๊ฐ€๋Šฅํ•˜๋‹ค. ๋˜ํ•œ 2๋ฒˆ์งธ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์ด ๋”ํ•˜๊ธฐ๋„ ๊ฐ€๋Šฅํ•˜๋‹ค.

Signed Intergers

๊ทธ๋ ‡๋‹ค๋ฉด ์ด์ œ ์Œ์ˆ˜๋„ ํ‘œํ˜„ํ•ด๋ณด์ž!

์ด๋ ‡๊ฒŒ ์Œ์ˆ˜๊นŒ์ง€ ๊ณ ๋ คํ•œ integer data type์„ Signed Intergers๋ผ๊ณ  ํ•œ๋‹ค.
์ปดํ“จํ„ฐ์—์„œ๋Š” ์Œ์ˆ˜๋ฅผ ํ‘œํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ํ‘œํ˜„ ๊ฐ€๋Šฅํ•œ ๊ฐ’์„ ๋‚˜๋ˆˆ๋‹ค.
ํ•œ๋งˆ๋””๋กœ, n bits์˜ ๊ฒฝ์šฐ์—๋Š” 2์˜ n์Šน ๋งŒํผ์˜ ํ‘œํ˜„์ด ๊ฐ€๋Šฅํ• ํ…Œ๋‹ˆ,
์ ˆ๋ฐ˜์ •๋„๋ฅผ ๋ฐฐ์ •ํ•ด์„œ ์–‘์˜ ์ •์ˆ˜ '1' ๋ถ€ํ„ฐ '2์˜ (n-1)์Šน' ๋งŒํผ ํ‘œํ˜„ํ•˜๊ณ ,
๋‹ค๋ฅธ ์ ˆ๋ฐ˜์ •๋„๋กœ ์Œ์˜ ์ •์ˆ˜ '-2์˜ (n-1)์Šน' ๋ถ€ํ„ฐ '-1' ๊นŒ์ง€ ํ‘œํ˜„ํ•œ๋‹ค.
๊ทธ๋ฆฌ๊ณ  ๋‚จ๊ฒจ๋‘” 2๊ฐœ์˜ ํ‘œํ˜„ ๊ฐ’์„, 1๊ฐœ๋Š” '0'์— ๋ฐฐ์ •ํ•˜๊ณ , 1๊ฐœ์˜ extra๋ฅผ ๊ฐ€์ง„๋‹ค.
(*extra์— ๋Œ€ํ•œ ๊ถ๊ธˆ์ฆ์€ ๋ฐ‘์—์„œ ํ•ด๊ฒฐ๋œ๋‹ค)
ํ•˜์ง€๋งŒ ์—ฌ๊ธฐ์„œ 0์ด๋ผ๋Š” uniqueํ•œ ํ‘œํ˜„ ๋•Œ๋ฌธ์— ๋˜ ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธด๋‹ค.
๋ฐ”๋กœ +-๋ฅผ ํ‘œํ˜„ํ•˜๋ฉด์„œ 0์„ ํ‘œํ˜„ํ•˜๋‹ค๋ณด๋‹ˆ '-0์ด 0'์ด๋ผ๋Š” ์‚ฌ์‹ค์„ ํ‘œํ˜„ํ•˜๋Š”๋ฐ ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธด ๊ฒƒ์ด๋‹ค.
*์‚ฌ๋žŒ ์ž…์žฅ์—์„œ์•ผ '-0์ด๋ฉด 0์ด์ง€'๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋  ๋ฌธ์ œ์ด๋‚˜, ์ •ํ™•ํ•œ ๊ณ„์‚ฐ๊ณผ ๋Œ€์‘๊ฐ’์ด ํ•„์š”ํ•œ ์ปดํ“จํ„ฐ ์ž…์žฅ์—์„œ๋Š” -0๋„, +0๋„ 0์ด๋ผ๊ณ  ํ‘œํ˜„ํ•˜๋Š” ๊ฒƒ์— ์˜ค๋ฅ˜๊ฐ€ ์ƒ๊ธฐ๋Š” ๊ฒƒ์ด๋‹ค.
(*๊ทธ๋ƒฅ +0๊ณผ -0์œผ๋กœ ํ‘œํ˜„ํ•˜๋ฉด ๋˜๋Š”๊ฑฐ ์•„๋‹ˆ๋ƒ? ๋ผ๊ณ  ์ƒ๊ฐํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ, ์ปดํ“จํ„ฐ ์ž…์žฅ์—์„œ๋Š” ๋ฌด์กฐ๊ฑด (+n) + (-n) = 0 ์ด๋ผ๊ณ  ๋‚˜์™€์•ผํ•˜๋Š”๋ฐ ์ด๋•Œ ์ด ๊ฐ’์„ -0์œผ๋กœ ํ‘œํ˜„ํ• ์ง€, +0์œผ๋กœ ํ‘œํ˜„ํ• ์ง€๋„ ๋ฌธ์ œ์ด๋ฉฐ, ๋งŒ์•ฝ (+0) + (-0) = ? ์„ ํ•ด๋ฒ„๋ฆฌ๋ฉด ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ’์ด ์—†๊ฒŒ ๋œ๋‹ค.)

๊ทธ๋ž˜์„œ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์„ ์‹œ๋„ํ•ด๋ณธ๋‹ค.
sign-magnitude ๋ฐฉ์‹, ์ œ์ผ ์•ž์˜ ๋‹จ์œ„(most significant,MS)๋กœ +-๋ฅผ ํ‘œํ˜„ํ•ด๋ณด๊ธฐ๋„ ํ•˜๊ณ ,(0์ธ ๊ฒฝ์šฐ +, 1์ธ ๊ฒฝ์šฐ -)
ex) 00101= 5, 10101= -5
one's complement ๋ฐฉ์‹, -๋ฅผ ํ‘œํ˜„ ํ•  ๋•Œ ๊ฐ’์„ ์ „๋ถ€ ๋’ค์ง‘๊ธฐ๋„ ํ•œ๋‹ค.
ex) 00101 = 5, 11010= -5
(๋‘ ๋ฐฉ๋ฒ• ๋‹ค, ๊ฒฐ๊ตญ MS์˜ ๊ฐ’์ด '0 ์ด๋ฉด +', '1 ์ด๋ฉด -' ์ด๊ธด ํ•˜๋‹ค.)
ํ•˜์ง€๋งŒ ๋‘ ๋ฐฉ๋ฒ• ๋ชจ๋‘ 0์„ uniqueํ•˜๊ฒŒ ํ‘œํ˜„ํ•˜์ง„ ๋ชปํ•œ๋‹ค.
ex) sign-magnitude -> 10000, 00000 ๋‘˜ ๋‹ค 0์ด ๋˜์–ด๋ฒ„๋ฆผ.
one's complement -> 11111, 00000 ๋‘˜ ๋‹ค 0์ด ๋˜์–ด๋ฒ„๋ฆผ.
*์ด ๋•Œ๋ฌธ์— ์œ„์—์„œ extra๊ฐ€ 1๊ฐœ ๋‚จ์•„ ๋ฒ„๋ฆฐ ๊ฒƒ์ด๊ธฐ๋„ ํ•˜๋‹ค. 0์„ 1๊ฐœ๋กœ ํ‘œํ˜„ํ•˜๊ณ  ์‹ถ์€๋ฐ ์œ„์˜ ์˜ˆ์‹œ์ฒ˜๋Ÿผ ์ž๊พธ 2๊ฐ€์ง€๊ฐ€ ๋‚˜์˜ค๊ธฐ ๋•Œ๋ฌธ์—. ๊ทธ๋ ‡๋‹ค๊ณ  ๋‘˜ ๋‹ค 0์œผ๋กœ ์ฃผ๋ฉด ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธด๋‹ค!

Two's Complement. (2's C)

๊ทธ๋ž˜์„œ ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ณ ์ž Two's Complement ๋ฐฉ์‹์ด ๋‚˜์˜จ๋‹ค.
์ด์ „์ฒ˜๋Ÿผ ๋‹จ์ˆœํžˆ MS์˜ ๊ฐ’์œผ๋กœ +-๋ฅผ ํ‘œํ˜„ํ•˜๊ฑฐ๋‚˜,
๊ฐ’์„ ์ „๋ถ€ ๋’ค์ง‘์–ด ๋ฒ„๋ฆฌ๊ฑฐ๋‚˜ ํ•˜๋Š” ์‹์œผ๋กœ ์Œ์ˆ˜๋ฅผ ํ‘œํ˜„ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ,
ํ•ด๋‹น ์–‘์ˆ˜์— ๋”ํ–ˆ์„ ๋•Œ, 00000์˜ ๊ฐ’์ด ๋‚˜์˜ค๋Š” ์ˆ˜๋ฅผ ์Œ์ˆ˜๋กœ ์ฑ„ํƒํ•œ ๊ฒƒ์ด๋‹ค.
(์ด๋•Œ MS๊ฐ’์€ ์—ฌ์ „ํžˆ ๊ณ„์‚ฐ์— ์“ฐ์ด์ง€ ์•Š์œผ๋ฉฐ, ์—ฌ๊ธฐ์„œ ๋˜ํ•œ ์Œ์ˆ˜ ์–‘์ˆ˜๋ฅผ ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ’์ด ๋˜๊ธฐ๋„ ํ•œ๋‹ค.)
์—ฌ๊ธฐ์„œ binary๋กœ ํ‘œํ˜„ํ–ˆ์„ ๋•Œ ๋„˜์น˜๋Š” ๊ฐ’์€ ๋ฌด์‹œํ•ด๋ฒ„๋ฆฐ๋‹ค.
ex) 00101 + 11011 ์„ ์‹ค์ œ๋กœ binary๋กœ ๊ณ„์‚ฐํ•˜๋ฉด 100000์ด ๋‚˜์˜ค๋‚˜, ์ปดํ“จํ„ฐ ๋‚ด์—์„œ bit๋กœ ํ‘œํ˜„ ๊ฐ€๋Šฅํ•œ ์ž๋ฆฟ์ˆ˜๋ฅผ ๋„˜๊ฒผ๊ธฐ ๋•Œ๋ฌธ์— ์ œ์ผ ์•ž์˜ 1์„ ๋ฌด์‹œํ•ด๋ฒ„๋ฆฌ๊ณ , 00000 ์œผ๋กœ ๊ณ„์‚ฐํ•œ๋‹ค.
*ํ•œ ๋งˆ๋””๋กœ bit๋กœ ํ‘œํ˜„๊ฐ€๋Šฅํ•œ ์ž๋ฆฟ์ˆ˜๋ฅผ ๋„˜๋Š” 1์€ ๋…ผ์™ธ๋กœ ์น˜๊ณ , ๋ชจ๋“  ์ž๋ฆฌ๊ฐ€ 0์ด ๋‚˜์˜ค๊ฒŒ ํ•˜๋Š” ๋”ํ•˜๊ธฐ ๊ฐ’์„ ์Œ์ˆ˜๋กœ ๋ณธ๋‹ค!

๋‘๋ฒˆ์งธ ์‹์˜ -9์ž๋ฆฌ์—๋Š” ๋ฌด์—‡์ด ๋“ค์–ด๊ฐ€์•ผํ• ๊นŒ? ์˜ค๋ฅธ์ชฝ ๊ทธ๋ฆผ์„ ๋ณด๋ฉด, two's complement์˜ ์Œ์ˆ˜๋ฅผ ๋งŒ๋“œ๋Š” ์‹์€ ์ƒ๊ฐ๋ณด๋‹ค ์‹ถ๋‹ค!

์œ„์˜ ๊ทธ๋ฆผ์„ ์ฐธ๊ณ ํ•˜๋ฉด ์กฐ๊ธˆ ๋” ์‰ฝ๊ฒŒ ์ดํ•ด๊ฐ€ ๊ฐˆ ๊ฒƒ์ด๋‹ค.
๊ทธ๋ฆฌ๊ณ  ๋ญ”๊ฐ€ ๋ˆˆ์œผ๋กœ ๋ณด๊ธฐ์—๋Š” two's complement์˜ ์Œ์ˆ˜๋ฅผ ๋งŒ๋“œ๋Š” ๋ฐฉ์‹์ด ์—„์ฒญ ๋ณต์žกํ•ด๋ณด์ด์ง€๋งŒ,
๋ง‰์ƒ ์Œ์ˆ˜ ๊ฐ’์„ ์–ป๊ธฐ ์œ„ํ•œ ๋ฐฉ๋ฒ•์€ ์ƒ๊ฐ๋ณด๋‹ค ๊ฐ„๋‹จํ•˜๋‹ค. one's complement ์ฒ˜๋Ÿผ ์ „๋ถ€ ๋’ค์ง‘๊ณ , 1์„ ๋”ํ•˜๋ฉด ๋œ๋‹ค!
(์œ„์˜ ๊ทธ๋ฆผ ์ค‘ 2๋ฒˆ์งธ ๊ทธ๋ฆผ ์ฐธ๊ณ )
์ด๋ ‡๊ฒŒ '0'์˜ uniqueํ•œ ํ‘œํ˜„์˜ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•œ two's complement๋Š”
extra๊นŒ์ง€ ํ™œ์šฉํ•˜์—ฌ n bit์˜ ๊ฒฝ์šฐ, "-2์˜ (n-1)์Šน" ๋ถ€ํ„ฐ "2์˜ (n-1)์Šน -1" ๊นŒ์ง€ ํ‘œํ˜„ ๊ฐ€๋Šฅํ•˜๋‹ค.

4๊ฐœ์˜ bit๋กœ two's complement๋กœ ์ด์šฉํ•ด ํ‘œํ˜„ํ•œ ๊ฐ’๋“ค

์œ„์˜ ๊ทธ๋ฆผ์ฒ˜๋Ÿผ, 4๊ฐœ์˜ bit๋ฅผ ๊ฐ€์ง„ ๊ฒฝ์šฐ -8 ๋ถ€ํ„ฐ 7๊นŒ์ง€ ํ‘œํ˜„์ด ๊ฐ€๋Šฅํ•ด์กŒ์œผ๋ฉฐ, '0'์— ๋Œ€ํ•ด์„œ๋„ 1๊ฐœ์˜ ๊ฐ’๋งŒ ๋‚˜์˜ฌ ์ˆ˜ ์žˆ๋‹ค.
์ด์ œ ์ด 2's C (two's complement)๋ฅผ ์šฐ๋ฆฌ๊ฐ€ ํ”ํžˆ ์‚ฌ์šฉํ•˜๋Š” decimal(์‹ญ์ง„์ˆ˜)๋กœ ํ‘œํ˜„ํ•  ์ˆ˜ ๋„ ์žˆ๋‹ค.
์–‘์ˆ˜์˜ ๊ฒฝ์šฐ๋Š” ๋‹จ์ˆœํ•œ binary์˜ ๊ณ„์‚ฐ๊ณผ ๊ฐ™์ง€๋งŒ,
์Œ์ˆ˜์˜ ๊ฒฝ์šฐ์—๋Š” ๋จผ์ € 2's C์˜ ๋ฒ•์น™์œผ๋กœ ์–‘์ˆ˜๋กœ ๋งŒ๋“ค์–ด์ค˜์„œ ๊ณ„์‚ฐํ›„, ๋งˆ์ง€๋ง‰์— -๋ฅผ ๋ถ™์ธ๋‹ค.
๊ทธ ๊ณผ์ •์€ ์•„๋ž˜๊ทธ๋ฆผ๊ณผ ๊ฐ™๋‹ค.

2's C์˜ 10์ง„์ˆ˜๋กœ์˜ ๋ณ€ํ™˜. ์–‘์ˆ˜์˜ ๊ฒฝ์šฐ์™€, ์Œ์ˆ˜์˜ ๊ฒฝ์šฐ.


์ด๋ ‡๊ฒŒ ๋‹จ์ˆœํžˆ ์ˆซ์ž๋ฅผ ์ปดํ“จํ„ฐ๋กœ ํ‘œํ˜„ํ•˜๋Š” ๊ฒƒ ์ด์™ธ์—๋„ ์ปดํ“จํ„ฐ๋Š” ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ์„ ํ•  ์ˆ˜ ์žˆ๋‹ค.
์ด์ œ Addition(๋”ํ•˜๊ธฐ), Subtraction(๋นผ๊ธฐ), Sign Extension('๊ณง ๋ฐฐ์šธ ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค.) ๊ฐ™์€ ๊ฒƒ ๋ถ€ํ„ฐ,
๋…ผ๋ฆฌ์ ์ธ ๋ถ€๋ถ„์ธ AND, OR, NOT ๊นŒ์ง€ ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ๋“ค์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด์ž.
์šฐ์„  Addition๊ณผ Subtraction ๊ฐ™์€ ๊ฒฝ์šฐ๋Š” ์œ„์—์„œ๋„ ์ถฉ๋ถ„ํžˆ ์ด์•ผ๊ธฐ ํ–ˆ์œผ๋ฏ€๋กœ, ์˜ˆ์‹œ๋“ค๋งŒ ๋ณด๊ณ  ๋„˜์–ด ๊ฐ€๋„๋ก ํ•˜๊ฒ ๋‹ค.

2's C์˜ ๋ง์…ˆ๊ณผ ๋บผ์…ˆ์˜ ์˜ˆ์‹œ๋“ค ๋นˆ์นธ์„ ์ฑ„์›Œ๋ณด์ž.


Sign Extension

์šฐ๋ฆฌ๊ฐ€ "4-bit๋กœ ํ‘œํ˜„๋œ ์ˆซ์ž๊ฐ€ ์žˆ๋Š”๋ฐ, 8-bit๋กœ ํ‘œํ˜„ํ•˜๊ณ  ์‹ถ๋‹ค."๋ผ๊ณ  ํ•  ๋•Œ,
์ด 4-bit์˜ ํ‘œํ˜„์„ 8-bit๋กœ ๋ฐ”๊ฟ”์ฃผ๋Š” ๊ฒƒ์„ Sign Extension์ด๋ผ๊ณ  ํ•œ๋‹ค.
ํ•œ ๋งˆ๋””๋กœ, ์ž‘์€ bit๋กœ ํ‘œํ˜„๋œ ๊ฐ’์„ ํฐ bit ํ‘œํ˜„์œผ๋กœ ๋ฐ”๊ฟ”์ฃผ๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค.

์ด๋•Œ ์–‘์ˆ˜์˜ ๊ฒฝ์šฐ๋Š” ๊ทธ๋ƒฅ 0์„ ์ฑ„์›Œ์ฃผ๋ฉด ๋˜๋‚˜,
์Œ์ˆ˜์˜ ๊ฒฝ์šฐ์—๋Š” 0์„ ์ฑ„์šธ ์‹œ ๋‹ค๋ฅธ ์ˆซ์ž๊ฐ€ ๋‚˜์™€๋ฒ„๋ฆฐ๋‹ค.
ํ•˜์ง€๋งŒ ์‹ ๊ธฐํ•˜๊ฒŒ๋„ ์šฐ๋ฆฌ๋Š” 2's C๋ฅผ ์ด์šฉํ•˜์—ฌ n์— add ํ•  ์‹œ, 0์ด ๋‚˜์˜ค๋Š” ๊ฐ’์„ -n์œผ๋กœ ์„ค์ •ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์—,
๊ทธ๋ƒฅ ์Œ์ˆ˜์ธ ๊ฒฝ์šฐ์—๋Š” 1์„ ์ฑ„์›Œ์ฃผ๋ฉด ๋œ๋‹ค. (์œ„์˜ ๊ทธ๋ฆผ ์ฐธ์กฐ)
ํ•œ๋งˆ๋””๋กœ, ์–‘์ˆ˜์˜ ๊ฒฝ์šฐ์—๋Š” 0, ์Œ์ˆ˜์˜ ๊ฒฝ์šฐ์—๋Š” 1 ์„ ์ฑ„์›Œ์ฃผ๋ฉด ๋œ๋‹ค.
(์ด ์ฑ„์›Œ์ฃผ๋Š” ๊ฐ’์„ sign bit๋ผ๊ณ  ํ•œ๋‹ค.)

Overflow

๋ฐ˜๋ฉด ๋ง์…ˆ์˜ ๊ฐ’์ด ๋„ˆ๋ฌด ํฌ๊ฑฐ๋‚˜ ๋„ˆ๋ฌด ์ž‘์•„์„œ ๋‚ด๊ฐ€ ๊ฐ€์ง„ bit ์ˆ˜๋กœ๋Š” ํ‘œํ˜„๋ถˆ๊ฐ€ํ•œ ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋‹ค.
๋ฐ”๋กœ ์ด๋Ÿฐ ๊ฒฝ์šฐ๋ฅผ Overflow๋ผ๊ณ  ํ•œ๋‹ค.

๋ฐ”๋กœ 1๋ฒˆ์งธ์™€ 2๋ฒˆ์งธ ์‹์˜ ๊ฒฝ์šฐ์ฒ˜๋Ÿผ ๊ฒฐ๊ณผ ๊ฐ’์— ์—๋Ÿฌ๊ฐ€ ๋‚˜๋ฒ„๋ฆฐ๋‹ค.
๊ทธ๋ ‡๋‹ค๋ฉด ์šฐ๋ฆฌ๋Š” ์–ด๋–ค ๊ณ„์‚ฐ์ด overflow๊ฐ€ ๋‚ฌ๋‹ค๋Š” ์‚ฌ์‹ค๋งŒ์ด๋ผ๋„ ์•Œ์•„์•ผ ํ•˜๋Š”๋ฐ,
์ด๋Ÿฐ ๊ฒฝ์šฐ์—๋Š” MS๊ฐ’(์ œ์ผ ์•ž์ž๋ฆฌ ๊ฐ’)์„ ์ด์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.
1๋ฒˆ์งธ ์‹์˜ ๊ฒฝ์šฐ์ฒ˜๋Ÿผ MS๊ฐ’์— +๋ฅผ ์˜๋ฏธํ•˜๋Š” 0์„ ๊ฐ€์ง„ 2๊ฐœ์˜ ์‹์„ ๊ณ„์‚ฐํ•˜๋Š”๋ฐ,
๊ฒฐ๊ณผ๊ฐ’์˜ MS๊ฐ’์ด -๋ฅผ ์˜๋ฏธํ•˜๋Š” 0์ด ๋‚˜์˜ค๊ฑฐ๋‚˜.
2๋ฒˆ์งธ ์‹์˜ ๊ฒฝ์šฐ์ฒ˜๋Ÿผ MS๊ฐ’์— -๋ฅผ ์˜๋ฏธํ•˜๋Š” 1์„ ๊ฐ€์ง„ 2๊ฐœ์˜ ์‹์„ ๊ณ„์‚ฐํ•˜๋Š”๋ฐ,
๊ฒฐ๊ณผ๊ฐ’์˜ MS๊ฐ’์ด +๋ฅผ ์˜๋ฏธํ•˜๋Š” 1์ด ๋‚˜์˜ค๊ฑฐ๋‚˜ ํ•˜๋Š” ๊ฒฝ์šฐ.
overflow๊ฐ€ ๋‚ฌ๋‹ค๋Š” ์‚ฌ์‹ค์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค.
์ฆ‰, ๊ณ„์‚ฐ์—์„œ MS๊ฐ’์ด ๊ฐ™๋‹ค๋ฉด ๊ฒฐ๊ณผ๊ฐ’์˜ MS๊ฐ’๋„ ๊ฐ™์•„์•ผ ํ•˜๋ฉฐ,
๊ฐ™์ง€ ์•Š๋‹ค๋ฉด overflow๊ฐ€ ๋‚˜์„œ ํ‹€๋ฆฐ ๊ณ„์‚ฐ์„ ํ•œ ๊ฒƒ์ด๋‹ค.
(์ •์ƒ์ ์ธ addition๊ณผ subtraction์˜ ์˜ˆ์‹œ์ธ 3๋ฒˆ์งธ, 4๋ฒˆ์งธ ์‹์˜ ๊ฒฝ์šฐ์—๋Š” ์œ„์™€ ๊ฐ™์€ ํ˜„์ƒ์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์—†๋‹ค.)

Logical Operations

์ด์ œ ์‚ดํŽด๋ณผ ๊ฒƒ์€ Logical Operations(๋…ผ๋ฆฌ ์—ฐ์‚ฐ)์ด๋‹ค.
logical operations์—์„œ 1= True, 0= False ๋ฅผ ์˜๋ฏธํ•˜๋ฉฐ,
์ด๋ฅผ ์ด์šฉํ•˜์—ฌ ๋‹ค์–‘ํ•œ ๋…ผ๋ฆฌ ํ‘œํ˜„์„ ํ•  ์ˆ˜ ์žˆ๋‹ค.

๊ฐ„๋‹จํ•˜๊ฒŒ 2bit๋กœ ํ‘œํ˜„ํ•ด๋ณธ and, or, not
and, or, not์˜ ๊ณ„์‚ฐ ์˜ˆ์‹œ

AND์˜ ๊ฒฝ์šฐ๋Š”,
A์™€ B๊ฐ€ True๋ผ๋Š” ๋œป์ด๋ฏ€๋กœ,
A์™€ B๊ฐ€ ๋‘˜ ๋‹ค True์— ํ•ด๋‹นํ•˜๋Š” 1์ด์—ฌ์•ผ ํ•œ๋‹ค.
๋‘˜์ค‘ ํ•˜๋‚˜๋ผ๋„ 0์ด๋ฉด False๊ฐ€ ๋œ๋‹ค.
๊ทธ๋ž˜์„œ,
AND๋Š” ์—ฐ์‚ฐ์—์„œ ํ•ด๋‹น ์ž๋ฆฌ์— 1๊ฐœ๋ผ๋„ 0์ด๋ฉด 0์˜ ๊ฐ’์ด ๋‚˜์˜จ๋‹ค.(์œ„์˜ ๊ทธ๋ฆผ ์ฐธ์กฐ)

OR์˜ ๊ฒฝ์šฐ๋Š”,
A ๋˜๋Š” B๊ฐ€ True๋ผ๋Š” ๋œป์ด๋ฏ€๋กœ,
A ๋‚˜ B ์ค‘ 1๊ฐœ๊ฐ€ True์— ํ•ด๋‹นํ•˜๋Š” 1์ด๋ฉด ๋œ๋‹ค.
๋‘˜์ค‘ ํ•˜๋‚˜๋ผ๋„ 1์ด๋ฉด True๊ฐ€ ๋œ๋‹ค.
๊ทธ๋ž˜์„œ,
OR์€ ์—ฐ์‚ฐ์—์„œ ํ•ด๋‹น ์ž๋ฆฌ์— 1๊ฐœ๋ผ๋„ 1์ด๋ฉด 1์˜ ๊ฐ’์ด ๋‚˜์˜จ๋‹ค.(์œ„์˜ ๊ทธ๋ฆผ ์ฐธ์กฐ)

NOT์˜ ๊ฒฝ์šฐ๋Š”,
True๋Š” False๋กœ, False๋Š” True๋กœ ๋ผ๋Š” ๋œป์ด๋ฏ€๋กœ,
๊ทธ๋ƒฅ True์— ํ•ด๋‹นํ•˜๋Š” 1์˜ ๊ฐ’์„ False์— ํ•ด๋‹นํ•˜๋Š” 0์œผ๋กœ, ๋ฐ˜๋Œ€์˜ ๊ฒฝ์šฐ์—๋„ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ํ•˜๋ฉด ๋œ๋‹ค.
๊ทธ๋ž˜์„œ,
NOT์€ 1์€ 0์œผ๋กœ, 0์€ 1๋กœ ๋ฐ”๊ฟ”์ค€ ๊ฐ’์ด ๋‚˜์˜จ๋‹ค.(์œ„์˜ ๊ทธ๋ฆผ ์ฐธ์กฐ)

Hexadecimal Notation

๊ทธ๋ฆฌ๊ณ  binary notation์„ ์กฐ๊ธˆ ๋” ๊ฐ„๋‹จํ•˜๊ฒŒ ํ‘œํ˜„ํ•˜๊ธฐ ์œ„ํ•ด Hexadecimal Notation16์ง„๋ฒ•์„ ์‚ฌ์šฉํ•˜๊ธฐ๋„ ํ•œ๋‹ค.
์ด ๊ฒฝ์šฐ 16์ด 2์˜ 4์Šน์ด๋ฏ€๋กœ, 4bit์— ํ•ด๋‹นํ•œ๋‹ค.
๊ณ ๋กœ 4๊ฐœ์˜ bit๋ฅผ ํ•˜๋‚˜๋กœ ๋ฌถ์–ด์„œ Hexadecimal์˜ digital ํ‘œํ˜„์„ ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

hexadecimal์˜ digital ํ‘œํ˜„๋น„๊ต

์—ฌ๊ธฐ์„œ hexadecimal์˜ ํŠน์ดํ•œ ์ ์€ 9 ์ดํ›„ ๋ถ€ํ„ฐ๋Š” A,B,C,D,E,F๋ฅผ ํ‘œํ˜„ํ•œ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.
๊ทธ๋ž˜์„œ binary๋ฅผ hexadecimal๋กœ ํ‘œํ˜„ํ•œ ์˜ˆ์‹œ๋ฅผ ๋ณด์ž๋ฉด ์•„๋ž˜์˜ ๊ทธ๋ฆผ๊ณผ ๊ฐ™๋‹ค.

binary์˜ hexadecimal ํ‘œํ˜„์˜ ์˜ˆ


Fractions(๋ถ„์ˆ˜)์˜ ํ‘œํ˜„๊ณผ Floating-Point

์ด์ œ Computer์˜ ํ‘œํ˜„์— ๋Œ€ํ•ด์„  ์–ด๋А์ •๋„ ๊ฐˆ๋ฌด๋ฆฌ๊ฐ€ ๋œ ๊ฒƒ ๊ฐ™์ง€๋งŒ,
์•„์ง ํ•œ๊ฐ€์ง€ ๋ฌธ์ œ๊ฐ€ ๋‚จ์•˜๋‹ค. ๊ทธ๊ฒƒ์€ ๋ฐ”๋กœ Fractions๋ถ„์ˆ˜์— ๋Œ€ํ•œ ๋ฌธ์ œ์ด๋‹ค.
์ˆซ์ž๊ฐ€ ํฐ ๊ฒƒ๋„ ๋ฌธ์ œ์ด์ง€๋งŒ, ์ž‘์€ ๊ฒƒ๋„ ๊ณ„์‚ฐ์„ ํ•  ๋•Œ bit๋ฅผ ๋งŽ์ด ์žก์•„๋จน๊ฒŒ ๋œ๋‹ค.

binary๋กœ ๋ถ„์ˆ˜๋ฅผ ํ‘œํ˜„ํ• ๋•Œ๋„ ์ˆซ์ž๊ฐ€ ์ž‘์•„์งˆ์ˆ˜๋ก ํ•œ์—†์ด ๋งŽ์€ bit๊ฐ€ ํ•„์š”ํ•˜๊ฒŒ ๋œ๋‹ค.

๊ทธ๋ž˜์„œ ์ด๋Ÿฐ ๋ถ„์ˆ˜์— ๋Œ€ํ•œ ํ‘œํ˜„์— ๋Œ€ํ•œ ๋ฐฉ๋ฒ•์œผ๋กœ,
์ „๊ธฐ์ „์ž๋ถ„์•ผ์—์„œ ๊ณต์ธ๋œ ํ•™ํšŒ์ธ IEEE์—์„œ ์ด๋Ÿฐ ๋ถ„์ˆ˜๋ฅผ ํ‘œํ˜„ํ•˜๋Š” Floating-Point์˜ ์Šคํƒ ๋‹ค๋“œํ•œ ๊ธฐ์ค€์„ ์ •ํ•ด๋†“์•˜๋‹ค.
32-bit์˜ ๊ธฐ์ค€์œผ๋กœ Floating-point์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์ž.

IEEE์˜ 32-bit ๊ธฐ์ค€๊ณผ ์˜ˆ์‹œ.

์œ„์—์„œ ์•Œ ์ˆ˜ ์žˆ๋“ฏ์ด Sign, Exponent, Fraction์„ ๊ฐ๊ฐ 1-bit, 8-bit, 23-bit๋กœ 32-bit๋ฅผ ๋‚˜๋ˆ„์—ˆ๋‹ค.
์—ฌ๊ธฐ์„œ ์ฃผ์˜ ํ•  ๊ฒƒ์€ '1 โ‰ค exponent โ‰ค 254'์˜ ๊ฒฝ์šฐ์™€ ๊ฐ™์ด ๋Œ€๋ถ€๋ถ„์˜ ๊ฒฝ์šฐ์—๋Š” ์ผ๋ฐ˜์ ์ธ ๊ณต์‹์„ ๋”ฐ๋ฅด์ง€๋งŒ,(๊ทธ๋ฆผ ์ฐธ์กฐ)
exponent๊ฐ’์ด 0์ธ ๊ฒฝ์šฐ์—๋Š” ํŠน์ˆ˜ํ•œ ๊ณต์‹(๋” ์ž‘์€ ์ˆ˜๋ฅผ ํ‘œํ˜„ํ•˜๊ธฐ์œ„ํ•˜์—ฌ)์„ ์‚ฌ์šฉํ•˜๊ณ ,
exponent๊ฐ’์ด 255์ธ ๊ฒฝ์šฐ์—๋Š” ์•„์˜ˆ ๋‹ค๋ฅธ ๊ฐ’(positive/negative, infinity ๋“ฑ๋“ฑ)์„ ํ‘œํ˜„ํ•œ๋‹ค.
*๊ฐ‘์ž๊ธฐ ๋ณต์žกํ•ด๋ณด์ด์ง€๋งŒ, ์ฒœ์ฒœํžˆ ์‚ดํŽด๋ณด๋ฉด ๋ณ„๊ฑฐ์—†๋‹ค!
์œ„์˜ ๊ทธ๋ฆผ ์ค‘, ์˜ค๋ฅธ์ชฝ ๊ทธ๋ฆผ์„ ๋ณด๋ฉฐ ์ฒœ์ฒœํžˆ ์‚ดํŽด๋ณด์ž.
sign ๊ตฌ์—ญ์€ ์ด์ „์˜ ๊ฒฝ์šฐ์™€ ๊ฐ™์ด +-๋ฅผ ๊ฒฐ์ •ํ•  ๋ฟ์ด๋‹ค.
exponent ๊ตฌ์—ญ์€ ๊ทธ๋ƒฅ 2์˜ ๋ช‡์Šน์ธ์ง€๋ฅผ ๊ฒฐ์ •ํ•  ๋ฟ์ด๋‹ค.
fraction ๊ตฌ์—ญ์€ 0.๋ช‡ ์ด๋ผ๋Š” ์†Œ์ˆ˜์ ์ดํ•˜ ๋ถ€๋ถ„์„ ๊ฒฐ์ •ํ•  ๋ฟ์ด๋‹ค.
์ˆซ์ž๊ฐ€ ๊ดด๋ž„ํ•ด์„œ ๊ทธ๋ ‡์ง€ ๋ง‰์ƒ ํ•˜๋‚˜ํ•˜๋‚˜ ๋Œ€์ž…ํ•ด๋ณด๋ฉด ์–ด๋ ต์ง€ ์•Š์€ ๊ณ„์‚ฐ์ด๋‹ค.
๊ทธ๋ ‡๋‹ค๋ฉด ์ด๋Ÿฐ Floating-Point๋กœ ํ‘œํ˜„๋œ ๋ถ„์ˆ˜Fractions๋„ ๊ทธ๋ƒฅ 2's C์˜ addition, subtraction ์ฒ˜๋Ÿผ ๊ทธ๋ƒฅ ๊ณ„์‚ฐํ•˜๋ฉด ๋ ๊นŒ?
์•„๋‹ˆ๋‹ค. ์ผ๋ จ์˜ ๊ณผ์ •์ด ํ•„์š”ํ•˜๋‹ค!
์ด์— ๋Œ€ํ•ด์„ , ๋…ผ๋ฆฌํšŒ๋กœ ๊ณผ๋ชฉ์—์„œ ๋ฐฐ์šฐ๋„๋ก ํ•˜์ž!

Text: ASCII Characters

์ž ์ด์ œ ์ปดํ“จํ„ฐ๊ฐ€ instruction, numbers, logical ๋“ฑ์„ ์–ด๋–ป๊ฒŒ ๋‹ค๋ฃจ๋Š”์ง€ ์•Œ์•„๋ณด์•˜๋‹ค.
์ด๋ฒˆ์—๋Š” Text์˜ ํ‘œํ˜„์— ๋Œ€ํ•˜์—ฌ ์•Œ์•„๋ณด์ž.์œ„์˜ floating-point์˜ ๊ฒฝ์šฐ์— standardํ•œ ํ‘œ์ค€์ด ์žˆ์—ˆ๋˜ ๊ฒƒ์ฒ˜๋Ÿผ, ASCII ๊ธฐ์ค€์ด ์žˆ๋‹ค.
ASCII๋Š” 7-bit๋ฅผ ์ด์šฉํ•˜์—ฌ, 128๊ฐœ์˜ character๋ฅผ ํ‘œํ˜„ํ•œ๋‹ค.

ASCII ๊ธฐ์ค€ ํ‘œํ˜„

์šฐ๋ฆฌ๊ฐ€ ์œ„์—์„œ ์ž ๊น ์•Œ์•„๋ณด์•˜๋˜, hexadecimal์„ ์ด์šฉํ•˜๋ฉด ์œ„์˜ ํ‘œ๋ฅผ ์‰ฝ๊ฒŒ ์•Œ์•„๋ณผ ์ˆ˜ ์žˆ์„ ๊ฒƒ์ด๋‹ค.
(๊ผญ character๋ฟ ์•„๋‹ˆ๋ผ, ๊ทธ ํ‘œํ˜„์„ ์œ„ํ•œ ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ๋“ค๋„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.
ex: sp=์ŠคํŽ˜์ด์Šค๋ฐ”, nl =new line ํ™”๋ฉด์ƒ์—์„œ ๋‹ค์Œ ๋ผ์ธ์œผ๋กœ ๋„˜์–ด๊ฐ„๋‹ค ๋“ฑ๋“ฑ)
์œ„์˜ ํ‘œ์—์„œ ๋ณด์ด๋“ฏ์ด,
์ˆซ์ž์˜ ๊ฒฝ์šฐ, ์›๋ž˜์ˆซ์ž์— +30์„ ํ•˜๋ฉด ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๊ณ ,
์˜์–ด ์†Œ๋ฌธ์ž์˜ ๊ฒฝ์šฐ, ๋Œ€๋ฌธ์ž์—์„œ +20์„ ํ•˜๋ฉด ํ‘œํ˜„ ํ•  ์ˆ˜ ์žˆ๋‹ค.

๊ทธ๋ ‡๋‹ค๋ฉด ์ด 128๊ฐœ์˜ ํ‘œํ˜„์œผ๋กœ ์ถฉ๋ถ„ํ• ๊นŒ?

์•„๋‹ˆ๋‹ค. ์˜๋ฌธ๋งŒ ์“ด๋‹ค๋ฉด ๊ทธ๋ ‡๊ฒ ์ง€๋งŒ, ์„ธ๊ณ„์—๋Š” ๋‹ค์–‘ํ•œ ์–ธ์–ด๊ฐ€ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— 128๊ฐœ์˜ ํ‘œํ˜„์œผ๋กœ๋Š” ๋ถ€์กฑํ•˜๋‹ค.
๊ทธ๋ž˜์„œ ๊ฐ ๋‚˜๋ผ๋ณ„ ์–ธ์–ด๋ฅผ ๋ชจ๋‘ ํ‘œ๊ธฐํ•˜๊ธฐ ์œ„ํ•œ ์ฝ”๋“œ์ฒด๊ณ„์ธ Unicode์—์„œ 16bit (2์˜ 16์Šน ๋งŒํผ์˜ ํ‘œํ˜„ ๊ฐ„์œผ)๋กœ,
๋‹ค์–‘ํ•œ ์–ธ์–ด๋ฅผ ํ‘œํ˜„ํ•˜๋ฉฐ, ๊ทธ์ค‘์— ํ•œ๊ธ€์€ ๊ฝค ๋งŽ์€ 11,172๊ฐœ์˜ ํ‘œํ˜„์„ ์ฐจ์ง€ํ•˜๊ณ  ์žˆ๋‹ค.

Other Data Types

์ด์™ธ์˜ data type์œผ๋กœ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒƒ๋“ค์ด ์žˆ๋‹ค.(์•„๋ž˜๊ทธ๋ฆผ ์ฐธ์กฐ)
์•„์ง์€ ์ž์„ธํžˆ ํŒŒ๊ณ ๋“ค ๋‚ด์šฉ์€ ์•„๋‹ˆ๋‹ˆ,
์ปดํ“จํ„ฐ๊ฐ€ ํ•ด๋‹น type์„ ๋Œ€๋žต ์–ด๋–ป๊ฒŒ ํ‘œํ˜„ํ•˜๋Š”์ง€ ์ •๋„๋งŒ ์•Œ์•„๋‘๋ฉด ์ข‹์„ ๊ฒƒ ๊ฐ™๋‹ค!

other data types


์˜ค๋Š˜์˜ ์ค‘์š”ํ•œ ๊ฐœ๋…

- data๋Š” computer์•ˆ์—์„œ ๋‹จ์ˆœํžˆ 0๊ณผ 1์˜ pattern์ด๋‹ค.
- Program Counter(๋‹ค์Œ์— ์‹คํ–‰ํ•  ๋ช…๋ น์–ด์˜ ์ฃผ์†Œ๋ฅผ ๊ธฐ์–ตํ•˜๊ณ  ์žˆ๋Š” ๊ฒƒ, ๊ฐ„๋žตํžˆ๋Š” ๋‹ค์Œ์— ์‹คํ–‰ ๋  ๋ช…๋ น์–ด์— ๋Œ€ํ•œ ํฌ์ธํ„ฐ)
๊ฐ€ instructions์„ ๊ฐ€๋ฅดํ‚ค๋ฉด instructions์œผ๋กœ ํ•ด์„์ด๋˜๋ฉฐ,
์ด instructions์€ ๋‹ค๋ฅธ memory์˜ data๋ฅผ ์ฐธ์กฐํ•˜๋Š”๋ฐ,
์ด ๋•Œ instructions์ด integers๋กœ ๊ฐ„์ฃผํ•˜๋ฉด integers๋กœ ํ•ด์„์ด๋˜๊ณ ,
floating point๋กœ ํ•ด์„ํ•˜๋ฉด floating point๋กœ ํ•ด์„์ด ๋˜๋Š” ์‹์ด๋‹ค.
-๊ธฐ๋ณธ์ ์œผ๋กœ instruction์—์„œ ์ฒ˜๋ฆฌํ•˜๋Š” data type์€,
integers, bit vectors, floating point numbers, characters ์ •๋„๊ฐ€ ์žˆ๋‹ค.
-๋‚˜๋จธ์ง€ data type(strings, images, sounds, etc..)์€ ํ•˜๋“œ์›จ์–ด์—์„œ ์ง€์›ํ•ด์ฃผ๋Š” data type์˜ ์กฐํ•ฉ์œผ๋กœ ํ‘œํ˜„์„ ํ•˜๊ฑฐ๋‚˜,
์ž…์ถœ๋ ฅ ์žฅ์น˜์˜ ๋„์›€์œผ๋กœ ํ‘œํ˜„์„ ํ•œ๋‹ค.
ex) ๊ฒŒ์ž„์„ ๋Œ๋ฆฌ๊ธฐ ์œ„ํ•ด ๊ทธ๋ž˜ํ”ฝ์นด๋“œ๋ฅผ ๊ฐ–์ถ”๊ฑฐ๋‚˜, ๋” ๋†’์€ ์Œ์งˆ์„ ์œ„ํ•ด dac๋ฅผ ์ด์šฉํ•˜๋Š” ๊ฒƒ ๋“ฑ.

*๋‚˜์˜ ์ƒ๊ฐ

๊ฐ„๋‹จํžˆ๋Š” ๋‹จ์ˆœํžˆ 0๊ณผ 1 ๋ฐ–์— ํ‘œํ˜„ํ•˜์ง€ ๋ชปํ•˜๋Š” bit๋ผ๋Š” ๋‹จ์œ„๋กœ ์–ด๋–ป๊ฒŒ ๋‹ค์–‘ํ•œ ์ˆซ์ž๋ฅผ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋Š”์ง€, ๊ทธ๋ฆฌ๊ณ  instruction์— ๋”ฐ๋ผ ํšจ์œจ์ ์œผ๋กœ ์Œ์ˆ˜ ์–‘์ˆ˜๋ถ€ํ„ฐ, ๋ถ„์ˆ˜๊นŒ์ง€ ํ‘œํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ์–ด๋– ํ•œ ๊ณผ์ •์„ ๊ฑฐ์น˜๋Š”์ง€์— ๋Œ€ํ•ด์„œ ์•Œ ์ˆ˜ ์žˆ๋Š” ์žฅ์ด์˜€๋‹ค.
๋˜ํ•œ ์ˆซ์ž๋ฅผ ๋„˜์–ด ASCII์ฝ”๋“œ ๊นŒ์ง€, ์šฐ๋ฆฌ์—๊ฒŒ ๋‹น์—ฐํ•œ ์ปดํ“จํ„ฐ์˜ ๋ฌธ์ž๋‚˜ ์†Œ๋ฆฌ ๋“ฑ์ด ์–ด๋–ค ๋ฐฉ์‹์„ ์ด์šฉํ•˜๋Š”์ง€ ์•Œ ์ˆ˜ ์žˆ์—ˆ๋‹ค.
ํ˜„์žฌ๋Š” ๋งˆ๋ƒฅ ์–ด๋ ค์›Œ๋ณด์ด์ง€๋งŒ ์ดํ›„ ์ฝ”๋”ฉ์— ์žˆ์–ด์„œ ์กฐ๊ธˆ ๋” ๊ธฐ๊ณ„์นœํ™”์ ์ธ ์–ธ์–ด๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ํ•ด๋‹น ๋ฐฉ์‹๋“ค์— ๋Œ€ํ•œ ์‚ฌ๊ณ ๋ฐฉ์‹์ด ๋„์›€์ด ๋  ๊ฒƒ ๊ฐ™๋‹ค.

+์˜ค๋Š˜์˜ ์˜๋‹จ์–ด

manipulate ์กฐ์ข…ํ•˜๋‹ค, ๋‹ค๋ฃจ๋‹ค
integer ์ •์ˆ˜
floating point ๋ถ€๋™์†Œ์ˆ˜์ 
character ๋ถ€ํ˜ธ
finite ์œ ํ•œํ•œ, ํ•œ์ •๋œ
voltage ์ „์••
notation ํ‘œ๊ธฐ๋ฒ•
decimal ์‹ญ์ง„๋ฒ•์˜
worth ~์˜ ๊ฐ€์น˜๊ฐ€ ์žˆ๋Š”
propagate ์ „ํŒŒํ•˜๋‹ค, ์„ ์ „ํ•˜๋‹ค
distinct ๋šœ๋ ทํ•œ, ๋ถ„๋ช…ํ•œ, ๋ณ„๊ฐœ์˜
assign ๋ฐฐ์น˜ํ•˜๋‹ค, ๋งก๊ธฐ๋‹ค, ๋ฐฐ์ •ํ•˜๋‹ค
complement ๋ณด์™„ํ•˜๋‹ค, ๋ง๋ถ™์ด๋‹ค
flip ๋’ค์ง‘๋‹ค, ์ –ํžˆ๋‹ค
represent ๋Œ€ํ‘œํ•˜๋‹ค, ๋Œ€์‹ ํ•˜๋‹ค, ํ•ด๋‹นํ•˜๋‹ค
indicate ๋‚˜ํƒ€๋‚ด๋‹ค, ๋‚ด๋น„์น˜๋‹ค
arithmetic ์‚ฐ์ˆ˜, ์—ฐ์‚ฐ, ๊ณ„์‚ฐ
circuit ์ˆœํ™˜, ํšŒ๋กœ, ์ˆœํšŒ
corresponding ~์— ํ•ด๋‹นํ•˜๋Š”, ์ƒ์‘ํ•˜๋Š”
remainder ๋‚˜๋จธ์ง€, (๋บ„์…ˆ ๋‚˜๋ˆ—์…ˆ๋“ฑ์˜) ๋‚˜๋จธ์ง€
division ๋ถ„ํ• , ๋ถ„๋ฐฐ, ๋‚˜๋ˆ—์…ˆ
magnitude (์—„์ฒญ๋‚œ)๊ทœ๋ชจ[์ค‘์š”๋„], ๊ด‘๋„, ์ง€์ง„๊ทœ๋ชจ
subtracting ๋บ„์…ˆ
multiplication ๊ณฑ์…ˆ
operand ํ”ผ์—ฐ์‚ฐํ•จ์ˆ˜
properties ์„ฑ์งˆ, ํŠน์ง•
amuse ์ฆ๊ฒ๊ฒŒํ•˜๋‹ค, ์ฆ๊ฑฐ์šด ์‹œ๊ฐ„์„ ๊ฐ–๊ฒŒ ํ•ด์ฃผ๋‹ค

'๐Ÿ’ปComputer > Computer concept&practice' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

4. The Von Neumann Model  (0) 2022.05.09
3. Digital Logic Structures  (0) 2022.04.30
1. Welcome Aboard  (1) 2022.04.19
0. Introduction  (0) 2022.04.19