CS๊ณต๋ถ€/์ปดํ“จํ„ฐ ๊ตฌ์กฐ&์šด์˜์ฒด์ œ

์ปดํ“จํ„ฐ๊ฐ€ ์ดํ•ดํ•˜๋Š” ์ •๋ณด: ๋ช…๋ น์–ด์™€ ๋ฐ์ดํ„ฐ

alswlfl 2026. 4. 19. 22:46

CPU๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ 0๊ณผ 1๋งŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋‹ค.

๋น„ํŠธ(bit): 0๊ณผ 1์„ ๋‚˜ํƒ€๋‚ด๋Š” ๊ฐ€์žฅ ์ž‘์€ ์ •๋ณด์˜ ๋‹จ์œ„๋กœ, 1๋น„ํŠธ๋Š” 0 ๋˜๋Š” 1 2๊ฐœ(21)์˜ ์ •๋ณด๋ฅผ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๊ณ , 2๋น„ํŠธ๋Š” 4๊ฐœ(22)์˜ ์ •๋ณด, 3๋น„ํŠธ๋Š” 8๊ฐœ(23)์˜ ์ •๋ณด๋ฅผ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค.

์ฆ‰, N๋น„ํŠธ๋Š” 2N๊ฐœ์˜ ์ •๋ณด๋ฅผ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

์‹คํ–‰ํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์€ ์ˆ˜์‹ญ๋งŒ, ์ˆ˜๋ฐฑ๋งŒ ๋น„ํŠธ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๊ธฐ ๋•Œ๋ฌธ์—, ํ”„๋กœ๊ทธ๋žจ์˜ ํฌ๊ธฐ๋ฅผ ๋งํ•  ๋•Œ๋Š” ๋น„ํŠธ๋ณด๋‹ค ํฐ ๋‹จ์œ„์ธ ๋ฐ”์ดํŠธ(byte), ํ‚ฌ๋กœ๋ฐ”์ดํŠธ(kB), ๋ฉ”๊ฐ€๋ฐ”์ดํŠธ(MB), ๊ธฐ๊ฐ€๋ฐ”์ดํŠธ(GB), ํ…Œ๋ผ๋ฐ”์ดํŠธ(TB) ๋“ฑ์„ ์‚ฌ์šฉํ•œ๋‹ค.

๋ฐ”์ดํŠธ(byte): 8๊ฐœ ๋น„ํŠธ๋ฅผ ๋ฌถ์€ ๋‹จ์œ„๋กœ ํ•˜๋‚˜์˜ ๋ฐ”์ดํŠธ๋กœ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” ์ •๋ณด๋Š” 28=256๊ฐœ์ด๋‹ค.

๊ตฌ๋ถ„ ๋น„ํŠธ
1 byte 8 bit
1 kB 1,000 byte
1 MB 1,000 kB
1 GB 1,000 MB
1 TB 1,000 GB

 

๋”๋ณด๊ธฐ

โ“ 1kB๋Š” 1000byte์ธ๊ฐ€? 1024byte์ธ๊ฐ€?

๋‘ ํ‘œํ˜„ ๋ชจ๋‘ ๋งž๋‹ค. ๋‘˜์˜ ์ฐจ์ด์ ์€ ํ‘œ๊ธฐ ๋ฐฉ์‹์˜ ์ฐจ์ด์ด๋‹ค. 10์ง„์ˆ˜ ๊ธฐ๋ฐ˜์˜ 1000๋กœ ํ‘œ๊ธฐํ•  ๋•Œ์—๋Š” SI prefix names๋กœ ํ‘œ๊ธฐํ•˜๊ณ , 2์ง„์ˆ˜ ๊ธฐ๋ฐ˜์˜ 1024๋กœ ํ‘œ๊ธฐํ•  ๋•Œ์—๋Š” IEC prefix names๋กœ ํ‘œ๊ธฐํ•œ๋‹ค.

IEC standard

- 1KiB = 1,024 bytes (big K)
- 1MiB = 1,024 KiB = 1,048,576 bytes

SI standard

- 1kB = 1,000 bytes (small k)

- 1MB = 1,000 kB = 1,000,000 bytes

 

์ปดํ“จํ„ฐ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ํ‘œํ˜„ํ•  ๋•Œ 2์ง„๋ฒ•์„ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฐ์ดํ„ฐ ํฌ๊ธฐ๋ฅผ ์ •์˜ํ•  ๋•Œ 2์˜ ๊ฑฐ๋“ญ์ œ๊ณฑ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ํŽธ๋ฆฌํ•˜๋‹ค.

- ์‹ค์ œ๋กœ ๋งˆ์ดํฌ๋กœ์†Œํ”„ํŠธ ์šด์˜์ฒด์ œ๋Š” 2์ง„๋ฒ•์„ ์ด์šฉํ•œ ์šฉ๋Ÿ‰ ๋‹จ์œ„๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค.

์ผ์ƒ์ƒํ™œ์—์„œ๋Š” 10์ง„๋ฒ•์ด ํ”ํžˆ ์‚ฌ์šฉ๋˜๋ฏ€๋กœ, ๊ตญ์ œ๋‹จ์œ„๊ณ„(SI)์—์„œ๋Š” 10์˜ ๊ฑฐ๋“ญ์ œ๊ณฑ์„ ํ†ตํ•ด ์ˆซ์ž๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค.

์ฐธ๊ณ  ์‚ฌ์ดํŠธ1

 

1kb = 1024 bytes? 1000 bytes? ๋ญ๊ฐ€ ๋งž์„๊นŒ? (์ปดํ“จํ„ฐ๋ฅผ ์‚ด ๋•Œ ์ €์žฅ ์šฉ๋Ÿ‰์ด ํ‘œ๊ธฐ๋ณด๋‹ค ์ ์€ ์ด์œ )

1kb = ? bytes ๊ด‘๊ณ  ์ „๋žต! ์™œ ๋‚ด ํ•˜๋“œ ์šฉ๋Ÿ‰์€ ๊ด‘๊ณ ์— ๋‚˜์˜จ ์šฉ๋Ÿ‰๋ณด๋‹ค ์ž‘์„๊นŒ?

velog.io

์ฐธ๊ณ ์‚ฌ์ดํŠธ2

 

1KB๋Š” 1000๋ฐ”์ดํŠธ? vs 1024๋ฐ”์ดํŠธ?

๋ฐ์ดํ„ฐ ์šฉ๋Ÿ‰ ๋‹จ์œ„๊ฐ€ 1ํ‚ฌ๋กœ๋ฐ”์ดํŠธ(KB)๊ฐ€ 1000๋ฐ”์ดํŠธ์ธ์ง€, 1024๋ฐ”์ดํŠธ์ธ์ง€ ํ—ท๊ฐˆ๋ฆฌ๋Š” ๋ถ„๋“ค์ด ์žˆ์„ ๊ฑฐ ๊ฐ™์€๋ฐ์š”. ๊ฒฐ๋ก ์ ์œผ๋กœ๋Š” ๋‘˜ ๋‹ค ๋งž๋Š” ํ‘œํ˜„์ž…๋‹ˆ๋‹ค. ๋ฌด์Šจ ๋šฑ๋”ด์ง€๊ฐ™์€ ์†Œ๋ฆฌ๋ƒ ํ•˜๋ฉด, 10์ง„๋ฒ•์œผ๋กœ ๊ณ„์‚ฐํ•˜

whomini.tistory.com

์›Œ๋“œ(word): CPU๊ฐ€ ํ•œ ๋ฒˆ์— ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐ์ดํ„ฐ์˜ ํฌ๊ธฐ๋กœ, CPU๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์›Œ๋“œ ๋‹จ์œ„๋กœ ์ฝ์–ด ๋“ค์ด๊ณ  ์ฒ˜๋ฆฌํ•œ๋‹ค.

  • CPU๊ฐ€ ํ•œ ๋ฒˆ์— 16๋น„ํŠธ๋ฅผ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด 1์›Œ๋“œ๋Š” 16๋น„ํŠธ๊ฐ€ ๋˜๊ณ , ํ•œ ๋ฒˆ์— 32๋น„ํŠธ๋ฅผ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด 32๋น„ํŠธ๊ฐ€ ๋˜๋Š” ๊ฒƒ์ด๋‹ค.
  • ์›Œ๋“œ ํฌ๊ธฐ๋Š” CPU๋งˆ๋‹ค ๋‹ค๋ฅด์ง€๋งŒ, ํ˜„๋Œ€ ์ปดํ“จํ„ฐ ๋Œ€๋ถ€๋ถ„์˜ ์›Œ๋“œ ํฌ๊ธฐ๋Š” 32๋น„ํŠธ ํ˜น์€ 64๋น„ํŠธ์ด๋‹ค.

๋ฐ์ดํ„ฐ: 0๊ณผ 1๋กœ ์ˆซ์ž ํ‘œํ˜„ํ•˜๊ธฐ

CPU๋Š” ์ปดํ“จํ„ฐ ๋‚ด๋ถ€์—์„œ 2์ง„๋ฒ•์„ ์‚ฌ์šฉํ•ด 2 ์ด์ƒ, 0 ์ดํ•˜์˜ ์ˆ˜๋ฅผ ์ดํ•ดํ•ด์•ผ ํ•œ๋‹ค.

  • 10์ง„๋ฒ•์ด ์ˆซ์ž 9๋ฅผ ๋„˜์–ด๊ฐ€๋Š” ์‹œ์ ์— ์ž๋ฆฌ์˜ฌ๋ฆผํ•ด 0๋ถ€ํ„ฐ 9๊นŒ์ง€ 10๊ฐœ์˜ ์ˆซ์ž๋งŒ์œผ๋กœ ๋ชจ๋“  ์ˆ˜๋ฅผ ํ‘œํ˜„ํ•˜๋“ฏ, 2์ง„๋ฒ•๋„ ์ˆซ์ž 1์„ ๋„˜์–ด๊ฐ€๋Š” ์‹œ์ ์— ์ž๋ฆฌ์˜ฌ๋ฆผํ•ด 0๊ณผ 1, 2๊ฐœ์˜ ์ˆซ์ž๋งŒ์œผ๋กœ ๋ชจ๋“  ์ˆซ์ž ํ‘œํ˜„ํ•œ๋‹ค.
  • 2์ง„์ˆ˜๋กœ ํ‘œํ˜„๋œ ์ˆ˜๋Š” ์ˆซ์ž ๋’ค์— ์•„๋ž˜์ฒจ์ž๋กœ (2)๋ฅผ ๋ถ™์ด๊ฑฐ๋‚˜ 2์ง„์ˆ˜ ์•ž์— 0b๋ฅผ ๋ถ™์ธ๋‹ค.

16์ง„๋ฒ•

2์ง„๋ฒ•์€ ์ˆซ์ž๊ฐ€ ์ปค์งˆ์ˆ˜๋ก ํ‘œํ˜„ํ•˜๋Š” ์ˆซ์ž์˜ ๊ธธ์ด๊ฐ€ ๋„ˆ๋ฌด ๊ธธ์–ด์ง„๋‹ค๋Š” ๋‹จ์ ์ด ์žˆ๋‹ค. ๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ์ปดํ“จํ„ฐ๊ฐ€ ์ดํ•ดํ•˜๋Š” ์ •๋ณด๋ฅผ ํ‘œํ˜„ํ•  ๋•Œ๋Š” 2์ง„์ˆ˜์™€ ํ•จ๊ป˜ 16์ง„์ˆ˜๋„ ํ•จ๊ป˜ ์‚ฌ์šฉํ•œ๋‹ค.

16์ง„์ˆ˜๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” 16์ง„๋ฒ•(hexadecimal)์€ ์ˆซ์ž 15๋ฅผ ๋„˜์–ด๊ฐ€๋Š” ์‹œ์ ์— ์ž๋ฆฌ์˜ฌ๋ฆผ์„ ํ•˜๋Š” ์ˆซ์ž ํ‘œํ˜„ ๋ฐฉ์‹์ด๋‹ค.

  • 16์ง„์ˆ˜๋กœ ํ‘œํ˜„๋œ ์ˆ˜๋Š” ์ˆซ์ž ๋’ค์— ์•„๋ž˜์ฒจ์ž๋กœ (16)๋ฅผ ๋ถ™์ด๊ฑฐ๋‚˜ 16์ง„์ˆ˜ ์•ž์— 0x๋ฅผ ๋ถ™์ด๋‹ค.
  • 16์ง„์ˆ˜๋Š” MAC ์ฃผ์†Œ๋‚˜ IPv6 ์ฃผ์†Œ๋ฅผ ํ‘œํ˜„ํ•  ๋•Œ ์‚ฌ์šฉ๋œ๋‹ค.
10์ง„์ˆ˜ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 ...
16์ง„์ˆ˜ 0 1 2 3 4 5 6 7 8 9 A B C D E F 10 11  

 

์ด์ง„์ˆ˜ ํ‘œํ˜„

์–ด๋–ค ์ˆ˜ x๋ฅผ ํ‘œํ˜„ํ•  ๋•Œ, 10์ง„์ˆ˜ ํ‘œํ˜„์€ x10, 2์ง„์ˆ˜ ํ‘œํ˜„์€ x2 ๋กœ ํ‘œ๊ธฐํ•˜๋ฉด, 2์ง„์ˆ˜๋Š” 0๊ณผ 1๋งŒ์œผ๋กœ ์ˆ˜๋ฅผ ํ‘œํ˜„ํ•˜๊ธฐ ๋•Œ๋ฌธ์— 0๊ณผ 1์€ ์‰ฝ๊ฒŒ ํ‘œํ˜„ ๊ฐ€๋Šฅํ•˜๋‹ค. ์ฆ‰, 010=02, 110=12๋กœ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค.

10์ง„์ˆ˜๋Š” 0-9๊นŒ์ง€ ๋ฌธ์ž๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ 210์œผ๋กœ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, 2์ง„์ˆ˜๋Š” ์ž๋ฆฟ์ˆ˜๋ฅผ ํ•˜๋‚˜ ์˜ฌ๋ ค 102์œผ๋กœ ํ‘œํ˜„๋œ๋‹ค.

$0_{10} = 0_{2}$
$1_{10} = 1_{2}$
$2_{10} = 10_{2}$
$3_{10} = 11_{2}$
$4_{10} = 100_{2}$
$5_{10} = 101_{2}$
$6_{10} = 110_{2}$

 

๋˜ ๋‹ค๋ฅธ ์ˆ˜ ํ‘œํ˜„ ๋ฐฉ์‹์€ ์ˆ˜๋ฅผ ํ‘œํ˜„ํ•˜๋Š” ์ง„์ˆ˜์— ๊ฐ ์ž๋ฆฟ์ˆ˜์˜ ์œ„์น˜๋ฅผ ๊ฑฐ๋“ญ์ œ๊ณฑํ•œ ํ›„, ๊ฐ ์ž๋ฆฟ์ˆ˜์— ์žˆ๋Š” ์ˆ˜๋ฅผ ๊ณฑํ•˜๊ณ  ๋ชจ๋‘ ๋”ํ•˜๋ฉด ๊ธฐ์กด์˜ ์ˆ˜์™€ ๋™์ผํ•˜๊ฒŒ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค.

$423_{10}=4\times  10^{2}+2\times 10^{1}+3\times 10^{0}$

 

$423_{10}= 110100111_{2}$

$=1\times 2^{8}+1\times 2^{7}+0\times 2^{6}+1\times 2^{5}+0\times 2^{4}$

$+0\times 2^{3}+1\times 2^{2}+1\times 2^{1}+1\times 2^{0}$

 

$423_{10}$์„ ์ด์ง„์ˆ˜ ํ‘œํ˜„์œผ๋กœ ๋ฐ”๊พธ๋Š” ๋ฐฉ๋ฒ•

2์ง„๋ฒ•๋ฟ๋งŒ ์•„๋‹ˆ๋ผ, 4, 8, 16์ง„๋ฒ• ๋“ฑ ๋‹ค๋ฅธ ์ˆ˜ ํ‘œํ˜„์—๋„ ๋˜‘๊ฐ™์ด ์ ์šฉ๋˜๋ฉฐ, 16์ง„๋ฒ•์€ 10-15๊นŒ์ง€ ์•ŒํŒŒ๋ฒณ A-F๋กœ ํ‘œํ˜„ํ•œ๋‹ค.

์ด์ง„๋ฒ•์˜ ์ •์ˆ˜ ํ‘œํ˜„

์ •์ˆ˜๋Š” ์Œ์ˆ˜๊ฐ€ ์กด์žฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์Œ์ˆ˜๋ฅผ ํ‘œํ˜„ํ•˜๊ธฐ ์œ„ํ•ด 2์˜ ๋ณด์ˆ˜๋ผ๋Š” ๊ฐœ๋…์„ ์‚ฌ์šฉํ•œ๋‹ค.

๋”๋ณด๊ธฐ

โ“์Œ์˜ ๋ถ€ํ˜ธ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์ž๋ฆฌ ํ•˜๋‚˜๋ฅผ ๋” ๋งŒ๋“ค์ง€ ์•Š๋Š” ์ด์œ 

 

$3_{10}=0 011_{2}$

$-3_{10}=1 011_{2}$

 

์œ„ ์˜ˆ์ œ์™€ ๊ฐ™์ด ์–‘์ˆ˜๋ฉด ๋งจ ์•ž์ž๋ฆฌ๊ฐ€ 0, ์Œ์ˆ˜๋ฉด 1๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค.

ํ•˜์ง€๋งŒ, ์œ„์™€ ๊ฐ™์€ ํ‘œํ˜„์€ ๋‘ ๊ฐ€์ง€ ๋ฌธ์ œ์ ์ด ์กด์žฌํ•œ๋‹ค.

1. 0์„ ํ‘œํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ๋‘ ๊ฐ€์ง€๋กœ ๋‚˜๋‰œ๋‹ค.

$0_{10}=0 000_{2}$

$-0_{10}=1 000_{2}$

 

2. ์—ฐ์‚ฐ์ด ์–ด๋ ค์›Œ์ง„๋‹ค.

ex) $3_{10}+(-1_{10})=2_{10}$๋ฅผ 2์ง„์ˆ˜๋กœ ํ‘œํ˜„ํ•˜์—ฌ ๊ฐ™์€ ์ž๋ฆฌ๋ฅผ ๋”ํ•˜๋ฉด, $0011_{2}+1001_{2}=1100_{2}$ ์ฆ‰ -4๊ฐ€ ๋œ๋‹ค.

2์ง„์ˆ˜์˜ 1์˜ ๋ณด์ˆ˜: 0์ด ๋“ค์–ด๊ฐ„ ์ž๋ฆฌ๋Š” 1๋กœ, 1์ด ๋“ค์–ด๊ฐ„ ์ž๋ฆฌ๋Š” 0์œผ๋กœ ๋ฐ”๊พผ๋‹ค.

2์ง„์ˆ˜์˜ 2์˜ ๋ณด์ˆ˜(2's Complement): 1์˜ ๋ณด์ˆ˜(1's Complement)์—์„œ 1์„ ๋”ํ•œ๋‹ค.

 

ex) $3_{10}=0011_{2}$์˜ 2์˜ ๋ณด์ˆ˜๋ฅผ ๊ตฌํ•ด๋ณด๋ฉด,

1์˜ ๋ณด์ˆ˜: 1100 (0๊ณผ 1์„ ๋ณ€๊ฒฝ)

2์˜ ๋ณด์ˆ˜: 1101 (1์˜ ๋ณด์ˆ˜์— 1 ๋”ํ•จ)

 

์ฆ‰, ์–ด๋–ค ์ด์ง„์ˆ˜ a์˜ 2์˜ ๋ณด์ˆ˜๋Š” a์™€ ๋”ํ•ด์กŒ์„ ๋•Œ, ์ฃผ์–ด์ง„ ๋น„ํŠธ ์ˆ˜๋ฅผ ํ•œ์ž๋ฆฌ ์ดˆ๊ณผํ•˜๋Š” $2^{n}_{10}$์ด ๋‚˜์˜ค๋Š” ์ˆ˜๋ฅผ ๋งํ•œ๋‹ค.

 

$\begin{align*}
0011 \\
+1101 \\
\hline 
1 0000 \\
= 16_{10} \\
= 2^{4}_{10}
\end{align*}$

 

์œ„์™€ ๊ฐ™์ด ํ‘œํ˜„ ๊ฐ€๋Šฅํ•œ 4๋น„ํŠธ ์ž๋ฆฟ์ˆ˜๋ฅผ ๋„˜์–ด๊ฐ€๋Š”๋ฐ, ๋„˜์–ด๊ฐ„ 1์„ ๋ฒ„๋ฆฌ๋ฉด $0000_{2} = 0_{10}$์ด ๋œ๋‹ค. ์ฆ‰, ์˜ค๋ฒ„ํ”Œ๋กœ์šฐ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.

์˜ค๋ฒ„ ํ”Œ๋กœ์šฐ(Overflow): ํ‘œํ˜„ ๊ฐ€๋Šฅํ•œ ์ž๋ฆฌ์ˆ˜๋ฅผ ๋„˜์–ด๊ฐ€๋Š” ํ˜„์ƒ

 

๋”ฐ๋ผ์„œ ์–ด๋–ค 2์ง„์ˆ˜ a์˜ ๋ณด์ˆ˜๋ฅผ -a๋กœ ์‚ฌ์šฉํ•˜๋ฉด, ๋‘ ์ด์ง„์ˆ˜๋ฅผ ๋”ํ•ด์„œ ํ‘œํ˜„ ๊ฐ€๋Šฅํ•œ ๋น„ํŠธ ์ž๋ฆฟ์ˆ˜๋ฅผ ๋„˜์–ด๊ฐ€๋Š” ์ˆ˜๋Š” ๋ฒ„๋ฆฌ๊ณ , ๋‚˜๋จธ์ง€ ์ˆ˜๋กœ ๋”ํ•ด์ง„ ๋‘ ์ด์ง„์ˆ˜์˜ ๊ฐ’์„ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค.

$$5_{10} - 3_{10}
= 0101_{2} + 1101_{2}
= 10010_{2}
= 0010_{2} (๋งจ ์•ž 1 ๋ฒ„๋ฆผ)
= 2_{10} $$

2์˜ ๋ณด์ˆ˜์™€ ์˜ค๋ฒ„ํ”Œ๋กœ์šฐ ํ˜„์ƒ์„ ์‚ฌ์šฉํ•ด์„œ ์Œ์ˆ˜์™€์˜ ๋ง์…ˆ์„ ํ›จ์”ฌ ์‰ฝ๊ฒŒ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

$0_{10} = 0000_{2}$์˜ 2์˜ ๋ณด์ˆ˜ ํ‘œํ˜„์„ ๊ตฌํ•ด๋ณด๋ฉด,

0000

1์˜ ๋ณด์ˆ˜: 1111

2์˜ ๋ณด์ˆ˜: 1 0000

์˜ค๋ฒ„ํ”Œ๋กœ์šฐ 1 ๋ฒ„๋ฆผ: 0000

๋”ฐ๋ผ์„œ, 2์˜ ๋ณด์ˆ˜ ์ฒด๊ณ„์™€ ์˜ค๋ฒ„ํ”Œ๋กœ์šฐ๋ฅผ ์ด์šฉํ•˜๋ฉด 0์— ๋Œ€ํ•œ ํ‘œํ˜„๋„ $0000_{2}$๋กœ ์œ ์ผํ•ด์ง€๋ฉฐ, 0 ํ‘œํ˜„์— ๋Œ€ํ•œ ๋ชจํ˜ธํ•จ์„ ์—†์•จ ์ˆ˜ ์žˆ๋‹ค.

 

2์˜ ๋ณด์ˆ˜ ์ฒด๊ณ„์˜ ์ˆ˜ ํ‘œํ˜„ ๋ฒ”์œ„

2์˜ ๋ณด์ˆ˜ ์ฒด๊ณ„๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๋ฉด $1000_{2}$๋Š” $8_{10}$์ด ์•„๋‹Œ -8_{10}๋กœ ์‚ฌ์šฉํ•œ๋‹ค. $0001_{2}$~$0111_{2}$์„ ๋ชจ๋‘ ์–‘์ˆ˜์ธ $1_{10}$~$7_{10}$์œผ๋กœ ํ•ด์„ํ–ˆ์„ ๋•Œ, ๊ฐ ์ˆ˜๋“ค์˜ 2์˜ ๋ณด์ˆ˜๋Š” $1111_{2}$~$1001_{2}$์ธ $-1_{10}$~$-7_{10}$์ด ๋œ๋‹ค.

 

4๋น„ํŠธ ํ‘œํ˜„์—์„œ ๊ฐ ๋น„ํŠธ๋งˆ๋‹ค ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” ์ˆ˜๊ฐ€ ์ด $2^{4}=16$๊ฐœ์˜ ์ˆ˜ ํ‘œํ˜„์ด ๊ฐ€๋Šฅํ•œ๋ฐ, 0์€ 2์˜ ๋ณด์ˆ˜ ํ‘œํ˜„์—์„œ $0000_{2}$ ํ•˜๋‚˜์˜ ํ‘œํ˜„๋งŒ ๊ฐ€์ง€๋ฏ€๋กœ ๋‚˜๋จธ์ง€ ํ‘œํ˜„ ๊ฐ€๋Šฅํ•œ ์ˆ˜๋Š” 15๊ฐœ๊ฐ€ ๋˜๊ณ , -8~8 ์ด 16๊ฐœ์˜ ์ˆซ์ž๊ฐ€ ๋‚˜๋จธ์ง€ ์ž๋ฆฌ๋ฅผ ํ•˜๋‚˜์”ฉ ์ฐจ์ง€ํ•˜๋ฉด ๊ฐ€์žฅ ํฐ ์ˆ˜์ธ 8์€ ์ž๋ฆฌ๋ฅผ ์ฐจ์ง€ํ•˜์ง€ ๋ชปํ•˜๊ฒŒ ๋œ๋‹ค.

 

๊ฐ€์žฅ ์ž‘์€ ์ˆ˜ $-8_{10}$์˜ 2์˜ ๋ณด์ˆ˜๋Š” $1000_{2} → 0111_{2} (1์˜ ๋ณด์ˆ˜) → 1000_{2} (2์˜ ๋ณด์ˆ˜)$๋กœ ์ž๊ธฐ ์Šค์Šค๋กœ์™€ ๊ฐ™์€ ์ˆ˜๊ฐ€ ๋œ๋‹ค.

์ด๋ ‡๊ฒŒ ์ฃผ์–ด์ง„ ๋น„ํŠธ ์ž๋ฆฟ์ˆ˜์—์„œ ๊ฐ€์žฅ ์ž‘์€ ์ˆ˜๋ฅผ 'Most negative number'๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.

 

์ฆ‰ 4๋น„ํŠธ์—์„œ 2์˜ ๋ณด์ˆ˜ ์ฒด๊ณ„๋ฅผ ์‚ฌ์šฉํ•ด ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” ์ˆ˜๋Š” -8~7์ด๋‹ค.

 


์ด์ง„์ˆ˜์˜ ์†Œ์ˆ˜ ํ‘œํ˜„

ํ‘œํ˜„ํ•˜๊ณ ์ž ํ•˜๋Š” ์†Œ์ˆ˜์™€ ์‹ค์ œ๋กœ ์ €์žฅ๋œ ์†Œ์ˆ˜ ๊ฐ„์— ์˜ค์ฐจ๊ฐ€ ์กด์žฌํ•  ์ˆ˜ ์žˆ๋‹ค.

const a = 0.1;
const b = 0.2;
const c = 0.3;

if (a + b === c) console.log('๊ฐ™์Œ');
else console.log('๋‹ค๋ฆ„');

// ๋‹ค๋ฆ„ ์ถœ๋ ฅ

 

์œ„ ์†Œ์Šค์ฝ”๋“œ์™€ ๊ฐ™์ด ์˜ค์ฐจ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ์ด์œ ๋Š” ์ปดํ“จํ„ฐ ๋‚ด๋ถ€์—์„œ ์†Œ์ˆ˜์ ์„ ๋‚˜ํƒ€๋‚ด๊ธฐ ์œ„ํ•ด ๋Œ€ํ‘œ์ ์œผ๋กœ ๋ถ€๋™ ์†Œ์ˆ˜์  ํ‘œํ˜„ ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜๋Š”๋ฐ, ์ด ๋ฐฉ์‹์˜ ์ •๋ฐ€๋„์— ํ•œ๊ณ„๊ฐ€ ์กด์žฌํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

๋ถ€๋™ ์†Œ์ˆ˜์ (floating point): ์†Œ์ˆ˜์ ์ด ๊ณ ์ •๋˜์–ด ์žˆ์ง€ ์•Š์€ ์†Œ์ˆ˜ ํ‘œํ˜„ ๋ฐฉ์‹์œผ๋กœ, ํ•„์š”์— ๋”ฐ๋ผ ์†Œ์ˆ˜์ ์˜ ์œ„์น˜๊ฐ€ ์ด๋™ํ•  ์ˆ˜ ์žˆ๊ณ  ์œ ๋™์ ์ด๋‹ค.

 

์˜ˆ๋ฅผ ๋“ค์–ด, 10์ง„์ˆ˜ 123.123์ด๋ผ๋Š” ์ˆ˜๋ฅผ $m\times 10^{n}$์˜ ํ˜•ํƒœ๋กœ ๋‚˜ํƒ€๋‚ด๋ฉด, $1.23123\times 10^{2}$์œผ๋กœ ํ‘œํ˜„ํ•  ์ˆ˜๋„ ์žˆ๊ณ , $1231.23\times 10^{-1}$์œผ๋กœ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ œ๊ณฑ์œผ๋กœ ํ‘œํ˜„๋œ 2์™€ -1์„ ์ง€์ˆ˜(exponent), 1.23123๊ณผ 1231.23์„ ๊ฐ€์ˆ˜(significand)๋ผ๊ณ  ํ•œ๋‹ค.

 

์˜ค๋Š˜๋‚  ๋Œ€๋ถ€๋ถ„์˜ ์ปดํ“จํ„ฐ๋Š” 2์ง„์ˆ˜์˜ ์ง€์ˆ˜์™€ ๊ฐ€์ˆ˜๋ฅผ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ˜•์‹์œผ๋กœ ์ €์žฅํ•˜๋Š”๋ฐ, ์ด์™€ ๊ฐ™์€ ๋ถ€๋™ ์†Œ์ˆ˜์  ์ €์žฅ ๋ฐฉ์‹์„ IEEE754๋ผ๊ณ  ํ•œ๋‹ค.

IEEE 754 ์ €์žฅ ๋ฐฉ์‹

์ด๋•Œ, ๋ถ€ํ˜ธ(sign) ๋น„ํŠธ๊ฐ€ 0์ด๋ฉด ์–‘์ˆ˜, 1์ด๋ฉด ์Œ์ˆ˜์ด๋‹ค.

 

๊ฐ€์ˆ˜์˜ ์ •์ˆ˜๋ถ€์—๋Š” 1๋กœ ํ†ต์ผ๋œ ์ •๊ทœํ™”๋œ ์ˆ˜๊ฐ€ ์ €์žฅ๋œ๋‹ค. ์ฆ‰, ๊ฐ€์ˆ˜๋Š” 1.OOO... ํ˜•ํƒœ๋ฅผ ๋„๊ณ  ์žˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด 2์ง„์ˆ˜ 1101011.1010101์˜ ๊ฒฝ์šฐ $1.1010111010101\times 2^{6}$์œผ๋กœ ์ €์žฅ๋œ๋‹ค.

 

๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— $2^{์ง€์ˆ˜}\times 1.OOO...$ ํ˜•ํƒœ์˜ ์†Œ์ˆ˜๋ฅผ ์ €์žฅํ•  ๋•Œ, ์ง€์ˆ˜์— ํ•ด๋‹นํ•˜๋Š” ๊ฐ’๊ณผ OOO...์— ํ•ด๋‹นํ•˜๋Š” ์†Œ์ˆ˜ ๋ถ€๋ถ„๋งŒ ์ €์žฅํ•˜๋ฉด ๋œ๋‹ค.

 

์ปดํ“จํ„ฐ๊ฐ€ ์ง€์ˆ˜๋ฅผ ์ €์žฅํ•  ๋•Œ๋Š” ๋ฐ”์ด์–ด์Šค ๊ฐ’์ด ๋”ํ•ด์ ธ์„œ ์ €์žฅ๋˜๋ฉฐ, ๋ฐ”์ด์–ด์Šค ๊ฐ’์€ $2^{k-1}-1$(k๋Š” ์ง€์ˆ˜์˜ ๋น„ํŠธ ์ˆ˜)์ด๋‹ค.

์ง€์ˆ˜๋ฅผ ํ‘œํ˜„ํ•˜๊ธฐ ์œ„ํ•ด 8๋น„ํŠธ๊ฐ€ ์‚ฌ์šฉ๋˜์—ˆ๋‹ค๋ฉด ๋ฐ”์ด์–ด์Šค ๊ฐ’์€ $2^{7}-1$์ธ 127์ด๊ณ , 11๋น„ํŠธ๊ฐ€ ์‚ฌ์šฉ๋˜์—ˆ๋‹ค๋ฉด ๋ฐ”์ด์–ด์Šค ๊ฐ’์€ $2^{10}-1$์ธ 1,023์ด๋‹ค.

 

๋”ฐ๋ผ์„œ ์œ„ ์˜ˆ์ œ์˜ ์ง€์ˆ˜๋Š” 127+6=133์œผ๋กœ ์ €์žฅ๋œ๋‹ค.

์ €์žฅ๋œ 2์ง„์ˆ˜ 1101011.1010101

 

 

์œ ์˜ํ•  ์ ์€ 10์ง„์ˆ˜ ์†Œ์ˆ˜๋ฅผ 2์ง„์ˆ˜๋กœ ํ‘œํ˜„ํ•  ๋•Œ, 10์ง„์ˆ˜ ์†Œ์ˆ˜์™€ 2์ง„์ˆ˜ ์†Œ์ˆ˜์˜ ํ‘œํ˜„์ด ๋”ฑ ๋งž์•„๋–จ์–ด์ง€์ง€ ์•Š์„ ์ˆ˜ ์žˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด, 1/3์ด๋ผ๋Š” ๋ถ„์ˆ˜๋ฅผ $m\times 3^{n}$ ๊ผด๋กœ ๋‚˜ํƒ€๋‚ด๊ณ  ์‹ถ๋‹ค๋ฉด ๊ฐ„๋‹จํ•˜๊ฒŒ $1\times 3^{-1}$์œผ๋กœ ํ‘œํ˜„ํ•˜๋ฉด ๋˜์ง€๋งŒ, 10์ง„์ˆ˜๋กœ ํ‘œํ˜„ํ•˜๊ธฐ ์œ„ํ•ด $m\times 10^{n}$์˜ ๊ผด๋กœ ๋‚˜ํƒ€๋‚ด๊ธฐ๋Š” ์–ด๋ ต๋‹ค.

 

๋งˆ์ฐฌ๊ฐ€์ง€๋กœ 10์ง„์ˆ˜ 0.1์€ $m\times 10^{n}$์˜ ๊ผด๋กœ ๊ฐ„๋‹จํ•˜๊ฒŒ ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ์ง€๋งŒ, ๊ฐ™์€ ์ˆ˜๋ฅผ $1.m\times 2^{n}$์˜ ๊ผด๋กœ ํ‘œํ˜„ํ•˜๋ ค๋ฉด ๋ฌดํ•œํ•˜๊ฒŒ ๋งŽ์€ ์†Œ์ˆ˜์ ์ด ํ•„์š”ํ•˜๋‹ค.

 

์ปดํ“จํ„ฐ์˜ ์ €์žฅ๊ณต๊ฐ„์€ ํ•œ์ •์ ์ด๊ธฐ ๋•Œ๋ฌธ์— ๋ฌดํ•œํžˆ ๋งŽ์€ ์†Œ์ˆ˜์ ์„ ์ €์žฅํ•  ์ˆ˜ ์—†์–ด์„œ ์ผ๋ถ€ ์†Œ์ˆ˜์ ์„ ์ƒ๋žตํ•ด ์ €์žฅํ•œ๋‹ค. ๊ทธ๋ž˜์„œ ์˜ค์ฐจ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค.

 


๋ฐ์ดํ„ฐ: 0๊ณผ 1๋กœ ๋ฌธ์ž ํ‘œํ˜„ํ•˜๊ธฐ

์ปดํ“จํ„ฐ๊ฐ€ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ž๋“ค์˜ ์ง‘ํ•ฉ์„ ๋ฌธ์ž ์ง‘ํ•ฉ(character set)์ด๋ผ๊ณ  ํ•œ๋‹ค.

๋ฌธ์ž ์ธ์ฝ”๋”ฉ(character encoding): ๋ฌธ์ž ์ง‘ํ•ฉ์— ์†ํ•œ ๋ฌธ์ž๋ฅผ ์ปดํ“จํ„ฐ๊ฐ€ ์ดํ•ดํ•˜๋Š” 0๊ณผ 1๋กœ ์ด๋ฃจ์–ด์ง„ ๋ฌธ์ž ์ฝ”๋“œ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๊ณผ์ •

๋ฌธ์ž ๋””์ฝ”๋”ฉ(character decoding): 0๊ณผ 1๋กœ ํ‘œํ˜„๋œ ๋ฌธ์ž๋ฅผ ์‚ฌ๋žŒ์ด ์ดํ•ดํ•˜๋Š” ๋ฌธ์ž๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๊ณผ์ •

๋ฌธ์ž ์ง‘ํ•ฉ 1. ์•„์Šคํ‚ค(ASCII)

์ดˆ์ฐฝ๊ธฐ ์ปดํ“จํ„ฐ์—์„œ ์‚ฌ์šฉํ•˜๋˜ ๋ฌธ์ž ์ง‘ํ•ฉ ์ค‘ ํ•˜๋‚˜๋กœ, ์˜์–ด์˜ ์•ŒํŒŒ๋ฒณ๊ณผ ์•„๋ผ๋น„์•„ ์ˆซ์ž, ์ผ๋ถ€ ํŠน์ˆ˜ ๋ฌธ์ž๋ฅผ ํฌํ•จํ•œ๋‹ค.

  • ํ•˜๋‚˜์˜ ์•„์Šคํ‚ค ๋ฌธ์ž๋ฅผ ํ‘œํ˜„ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” 8๋น„ํŠธ(1๋ฐ”์ดํŠธ)๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. 8๋น„ํŠธ ์ค‘ 1๋น„ํŠธ๋Š” ํŒจ๋ฆฌํ‹ฐ ๋น„ํŠธ๋กœ ์‚ฌ์šฉ๋œ๋‹ค.
    ํŒจ๋ฆฌํ‹ฐ ๋น„ํŠธ: ์˜ค๋ฅ˜ ๊ฒ€์ถœ์„ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” ๋น„ํŠธ
  • ์ฆ‰ ์‹ค์ง์ ์œผ๋กœ ๋ฌธ์ž ํ‘œํ˜„์„ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” ๋น„ํŠธ๋Š” 7๋น„ํŠธ๋กœ, ํ‘œํ˜„ ๊ฐ€๋Šฅํ•œ ์ •๋ณด ๊ฐ€์ง“์ˆ˜๋Š” $2^{7}$๊ฐœ์ด๋ฏ€๋กœ ์ด 128๊ฐœ์˜ ๋ฌธ์ž๋ฅผ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ์•„์Šคํ‚ค ๋ฌธ์ž๋“ค์€ 0๋ถ€ํ„ฐ 127๊นŒ์ง€์˜ ์ˆซ์ž ์ค‘ ํ•˜๋‚˜์˜ ๊ณ ์œ ํ•œ ์ˆ˜์™€ ๋Œ€์‘๋˜๋Š”๋ฐ ์ด ์ˆ˜๋ฅผ ์•„์Šคํ‚ค ์ฝ”๋“œ๋ผ๊ณ  ํ•œ๋‹ค. ์•„์Šคํ‚ค ์ฝ”๋“œ๋ฅผ 2์ง„์ˆ˜๋กœ ํ‘œํ˜„ํ•จ์œผ๋กœ์จ ์•„์Šคํ‚ค ๋ฌธ์ž๋ฅผ 0๊ณผ 1๋กœ ๋Œ€์‘์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค.
    ex) 'A'๋Š” 10์ง„์ˆ˜ 65๋กœ ์ธ์ฝ”๋”ฉ๋˜๊ณ , 'a'๋Š” 10์ง„์ˆ˜ 97๋กœ ์ธ์ฝ”๋”ฉ ๋œ๋‹ค.
  • ํ•˜์ง€๋งŒ, ์•„์Šคํ‚ค ์ฝ”๋“œ๋Š” ํ•œ๊ธ€์„ ํ‘œ๊ธฐํ•  ์ˆ˜ ์—†๋‹ค.

EUC-KR ์ธ์ฝ”๋”ฉ

ํ•œ๊ธ€ ์ธ์ฝ”๋”ฉ ๋ฐฉ์‹ ์ค‘ ํ•˜๋‚˜๋กœ, KS X 1001, KS X 1003์ด๋ผ๋Š” ๋ฌธ์ž ์ง‘ํ•œ ๊ธฐ๋ฐ˜์˜ ์ธ์ฝ”๋”ฉ ๋ฐฉ์‹์ด๋‹ค.

์•„์Šคํ‚ค ๋ฌธ์ž๋ฅผ ํ‘œํ˜„ํ•  ๋•Œ๋Š” 1๋ฐ”์ดํŠธ, ํ•˜๋‚˜์˜ ํ•œ๊ธ€ ๊ธ€์ž๋ฅผ ํ‘œํ˜„ํ•  ๋•Œ๋Š” 2๋ฐ”์ดํŠธ ํฌ๊ธฐ์˜ ์ฝ”๋“œ๋ฅผ ๋ถ€์—ฌํ•œ๋‹ค.

ํ•˜์ง€๋งŒ, EUC-KR ์ธ์ฝ”๋”ฉ ๋ฐฉ์‹๋„ ๋ชจ๋“  ํ•œ๊ธ€ ์กฐํ•ฉ์„ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ์„ ์ •๋„๋กœ ๋งŽ์€ ์–‘์ด ์•„๋‹ˆ๋‹ค. (ex: ์€“, ๋˜  ๋“ฑ์€ ํ‘œํ˜„ ๋ถˆ๊ฐ€)

 

๋ฌธ์ž ์ง‘ํ•ฉ 2. ์œ ๋‹ˆ์ฝ”๋“œ(Unicode)

ํ•œ๊ธ€์„ ํฌํ•จํ•ด EUC-KR์— ๋น„ํ•ด ํ›จ์”ฌ ๋งŽ์€ ์–ธ์–ด, ํŠน์ˆ˜๋ฌธ์ž, ํ™”์‚ดํ‘œ, ์ด๋ชจํ‹ฐ์ฝ˜๊นŒ์ง€ ์ฝ”๋“œ๋กœ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” ํ†ต์ผ๋œ ๋ฌธ์ž ์ง‘ํ•ฉ์ด๋‹ค.

  • ์œ ๋‹ˆ์ฝ”๋“œ ๋ฌธ์ž ์ง‘ํ•ฉ์— ์†ํ•œ ๋ฌธ์ž์—๋Š” ๊ณ ์œ ํ•œ ๊ฐ’์ด ๋ถ€์—ฌ๋˜์–ด ์žˆ๋‹ค. ex: 'ํ•œ' → 0xD55C
  • ์•„์Šคํ‚ค ์ฝ”๋“œ์™€ EUC-KR์€ ๊ธ€์ž์— ๋ถ€์—ฌ๋œ ๊ฐ’์„ ๊ทธ๋Œ€๋กœ ์ธ์ฝ”๋”ฉ ๊ฐ’์œผ๋กœ ์‚ผ์•˜์ง€๋งŒ, ์œ ๋‹ˆ์ฝ”๋“œ๋Š” ๋‹ค์–‘ํ•œ ๋ฐฉ๋ฒ•์œผ๋กœ ์ธ์ฝ”๋”ฉํ•œ๋‹ค.
    ์ธ์ฝ”๋”ฉ ๋ฐฉ๋ฒ•์—๋Š” UTF-8, UTF-16, UTF-32 ๋“ฑ์ด ์žˆ๋‹ค. ๊ฐ€๋ณ€ ๊ธธ์ด ์ธ์ฝ”๋”ฉ ๋ฐฉ์‹์ด๋‹ค.
    ์ฆ‰, ์ธ์ฝ”๋”ฉ๋œ ๊ฒฐ๊ณผ์˜ ๊ธธ์ด๊ฐ€ ์ผ์ •ํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ๋‹ค๋Š” ์˜๋ฏธ์ด๋‹ค.

base64 ์ธ์ฝ”๋”ฉ

๋ฌธ์ž๋ฟ๋งŒ ์•„๋‹ˆ๋ผ, ์ด์ง„ ๋ฐ์ดํ„ฐ๊นŒ์ง€ ๋ณ€ํ™˜ํ•  ์ˆ˜ ์žˆ๋Š” ์ธ์ฝ”๋”ฉ ๋ฐฉ์‹์œผ๋กœ, ๋‹จ์ˆœ ๋ฌธ์ž ์™ธ์— ์ด๋ฏธ์ง€ ๋ฐ์ดํ„ฐ ๋“ฑ ๋ชจ๋‘ ์•„์Šคํ‚ค ๋ฌธ์ž ํ˜•ํƒœ๋กœ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค.

base64๋Š” 64์ง„๋ฒ•์„ ์˜๋ฏธํ•œ๋‹ค. ๊ทธ๋ž˜์„œ ํ•˜๋‚˜์˜ base64 ์ธ์ฝ”๋”ฉ ๊ฐ’์„ ํ‘œํ˜„ํ•˜๊ธฐ ์œ„ํ•ด 64๊ฐœ์˜ ๋ฌธ์ž๊ฐ€ ์‚ฌ์šฉ๋œ๋‹ค. ์ฆ‰, $2^{6}$์˜ ์ง€์ˆ˜์ธ 6๋น„ํŠธ๊ฐ€ ํ•„์š”ํ•˜๋‹ค.

 

์˜ˆ๋ฅผ ๋“ค์–ด, 'abc'๋ผ๋Š” ๋ฌธ์ž์—ด์ด ์žˆ์œผ๋ฉด 'a'๋Š” 97, 'b'๋Š” 98, 'c'๋Š” '99' ์•„์Šคํ‚ค ์ฝ”๋“œ๋กœ ์ธ์ฝ”๋”ฉ๋  ์ˆ˜ ์žˆ๋‹ค. ๊ฐ๊ฐ์˜ ์•„์Šคํ‚ค ์ฝ”๋“œ๋Š” 8๋น„ํŠธ ํฌ๊ธฐ์˜ 2์ง„์ˆ˜์ธ 01100001, 01100010, 01100011๋กœ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค.

๋ฌธ์ž a b c
์•„์Šคํ‚ค 0 1 1 0 0 0 0 1 0 1 1 0 0 0 1 0 0 1 1 0 0 0 1 1
Base64 Y W J j

 

base64 ๋Œ€์‘ํ‘œ์— ๋”ฐ๋ผ 6๋น„ํŠธ์”ฉ ๋Š์–ด์„œ ๋ณ€ํ™˜ํ•˜๋ฉด 'YWJj'๊ฐ€ ๋œ๋‹ค.

 

ํ•˜์ง€๋งŒ, 6๋น„ํŠธ์”ฉ ๋‚˜๋ˆ„์–ด ๋–จ์–ด์ง€์ง€ ์•Š๋Š” ๊ฒฝ์šฐ๋„ ์žˆ๋‹ค. ๋งŒ์•ฝ, 'ab'์˜ ๊ฒฝ์šฐ ์ด 16๋น„ํŠธ์ด๋ฏ€๋กœ 6๋น„ํŠธ๋กœ ๋‚˜๋ˆ„์–ด ๋–จ์–ด์ง€์ง€ ์•Š๋Š”๋‹ค. ์ด ๊ฒฝ์šฐ์—๋Š” ๋‚˜๋ˆ„์–ด ๋–จ์–ด์ง€์ง€ ์•Š๋Š” ์ž๋ฆฌ๋ฅผ 0์œผ๋กœ ์ฑ„์›Œ์ง€๋Š” ํŒจ๋”ฉ์ด ๋˜๊ณ , '='๋กœ ์ธ์ฝ”๋”ฉ ๋œ๋‹ค.

๋ฌธ์ž a b  
์•„์Šคํ‚ค 0 1 1 0 0 0 0 1 0 1 1 0 0 0 1 0 0 0 0 0 0 0 0 0
Base64 Y W J =

 


๋ช…๋ น์–ด

๋ช…๋ น์–ด๋Š” ์ˆ˜ํ–‰ํ•  ๋™์ž‘๊ณผ ์ˆ˜ํ–‰ํ•  ๋Œ€์ƒ์œผ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๋‹ค. ์ˆ˜ํ–‰ํ•  ๋Œ€์ƒ์€ ์ˆ˜ํ–‰ํ•  ๋™์ž‘์— ์‚ฌ์šฉ๋  ๋ฐ์ดํ„ฐ ์ž์ฒด๊ฐ€ ๋  ์ˆ˜๋„ ์žˆ๊ณ , ๋™์ž‘์— ์‚ฌ์šฉ๋  ๋ฐ์ดํ„ฐ๊ฐ€ ์ €์žฅ๋œ ์œ„์น˜๊ฐ€ ๋  ์ˆ˜ ์žˆ๋‹ค.

 

์—ฐ์‚ฐ์ฝ”๋“œ(opcode): ๋ช…๋ น์–ด๊ฐ€ ์ˆ˜ํ–‰ํ•  ๋™์ž‘

์˜คํผ๋žœ๋“œ(operand): ๋™์ž‘์— ์‚ฌ์šฉ๋  ๋ฐ์ดํ„ฐ ํ˜น์€ (๋ฉ”๋ชจ๋ฆฌ๋‚˜ ๋ ˆ์ง€์Šคํ„ฐ์˜ ์ฃผ์†Œ์™€ ๊ฐ™์ด)๋™์ž‘์— ์‚ฌ์šฉ๋  ๋ฐ์ดํ„ฐ๊ฐ€ ์ €์žฅ๋œ ์œ„์น˜

 

์ฆ‰, ํ•˜๋‚˜์˜ ๋ช…๋ น์–ด๋Š” ์—ฐ์‚ฐ์ฝ”๋“œ์™€ 0๊ฐœ ์ด์ƒ์˜ ์˜คํผ๋žœ๋“œ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์œผ๋ฉฐ, ๋ช…๋ น์–ด์—์„œ ์—ฐ์‚ฐ ์ฝ”๋“œ๊ฐ€ ๋‹ด๊ธฐ๋Š” ์˜์—ญ์„ ์—ฐ์‚ฐ ์ฝ”๋“œ ํ•„๋“œ, ์˜คํผ๋žœ๋“œ๊ฐ€ ๋‹ด๊ธฐ๋Š” ์˜์—ญ์„ ์˜คํผ๋žœ๋“œ ํ•„๋“œ๋ผ๊ณ  ํ•œ๋‹ค.

๋ช…๋ น์–ด ํ˜•ํƒœ

 

๋ณดํ†ต ์˜คํผ๋žœ๋“œ ํ•„๋“œ์—๋Š” ์ˆซ์ž๋‚˜ ๋ฌธ์ž์™€ ๊ฐ™์ด ์—ฐ์‚ฐ ์ฝ”๋“œ์— ์‚ฌ์šฉ๋  ๋ฐ์ดํ„ฐ๊ฐ€ ์ง์ ‘ ๋ช…์‹œ๋˜๊ธฐ๋ณด๋‹ค๋Š” ๋งŽ์€ ๊ฒฝ์šฐ ์—ฐ์‚ฐ ์ฝ”๋“œ์— ์‚ฌ์šฉ๋  ๋ฐ์ดํ„ฐ๊ฐ€ ์ €์žฅ๋œ ์œ„์น˜์ธ ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ๋‚˜ ๋ ˆ์ง€์Šคํ„ฐ์˜ ์ด๋ฆ„์ด ๋ช…์‹œ๋œ๋‹ค. ๊ทธ๋ž˜์„œ ์˜คํผ๋žœ๋“œ ํ•„๋“œ๋ฅผ ์ฃผ์†Œ ํ•„๋“œ๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.

๋งŒ์•ฝ, ๋ช…๋ น์–ด์— ์‚ฌ์šฉ๋œ ์˜คํผ๋žœ๋“œ์— ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ๊ฐ€ ๋ช…์‹œ๋˜์—ˆ๋‹ค๋ฉด ์ด ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•œ ๋ฉ”๋ชจ๋ฆฌ ์ ‘๊ทผ์ด ๋” ํ•„์š”ํ•˜๋‹ค.

 

์˜ˆ๋ฅผ ๋“ค์–ด, CPU๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ์— ์ ‘๊ทผํ•ด '๋”ํ•ด๋ผ. 100๋ฒˆ์ง€ ๊ฐ’์—. 10์„' ์ด๋ผ๋Š” ๋ช…๋ น์–ด๋ฅผ ๊ฐ€์ง€๊ณ  ์™”๋‹ค๋ฉด, CPU๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ๋กœ๋ถ€ํ„ฐ ์ธ์ถœํ•œ ๋ช…๋ น์–ด๋Š” ๊ณง๋ฐ”๋กœ ์‹คํ–‰๋  ์ˆ˜ ์—†๋‹ค. ์˜คํผ๋žœ๋“œ ํ•„๋“œ์— ๋ช…์‹œ๋œ 100๋ฒˆ์ง€ ๊ฐ’์ด๋ผ๋Š” ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ๋ฅผ ํ†ตํ•ด ํ•œ ๋ฒˆ ๋” ๋ฉ”๋ชจ๋ฆฌ์— ์ ‘๊ทผํ•ด์•ผ ํ•œ๋‹ค.

 

์—ฐ์‚ฐ์ฝ”๋“œ๋Š” CPU์— ๋”ฐ๋ผ ๊ตฌ์ฒด์ ์ธ ์ƒ๊น€์ƒˆ๊ฐ€ ๋‹ค๋ฅด์ง€๋งŒ, ๋Œ€๋ถ€๋ถ„์˜ CPU๊ฐ€ ๊ณตํ†ต์ ์œผ๋กœ ์ดํ•ดํ•˜๋Š” ๋Œ€ํ‘œ์ ์ธ ์—ฐ์‚ฐ ์ฝ”๋“œ์˜  ์œ ํ˜•์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

์œ ํ˜• ์—ฐ์‚ฐ์ฝ”๋“œ ์„ค๋ช…
๋ฐ์ดํ„ฐ ์ „์†ก MOVE ๋ฐ์ดํ„ฐ๋ฅผ ์˜ฎ๊ฒจ๋ผ
STORE ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅํ•ด๋ผ
LOAD(FETCH) ๋ฐ์ดํ„ฐ๋ฅผ ๋ฉ”๋ชจ๋ฆฌ์—์„œ CPU๋กœ ๊ฐ€์ ธ์™€๋ผ
PUSH ๋ฐ์ดํ„ฐ๋ฅผ ์Šคํƒ์— ์ €์žฅํ•ด๋ผ
POP ์Šคํƒ์˜ ์ตœ์ƒ๋‹จ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์™€๋ผ
์‚ฐ์ˆ /๋…ผ๋ฆฌ ์—ฐ์‚ฐ ADD/SUBTRACT/MULTIPLY/DIVIDE ๋ง์…ˆ/๋บ„์…ˆ/๊ณฑ์…ˆ/๋‚˜๋ˆ—์…ˆ ์ˆ˜ํ–‰ํ•ด๋ผ
INCREMENT
DECREMENT
์˜คํผ๋žœ๋“œ์— 1์„ ๋”ํ•ด๋ผ
์˜คํผ๋žœ๋“œ์— 1์„ ๋นผ๋ผ
AND/OR/NOT AND/OR/NOT ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•ด๋ผ
COMPARE ๋‘ ๊ฐœ์˜ ์ˆซ์ž ํ˜น์€ TRUE/FALSE ๊ฐ’์„ ๋น„๊ตํ•ด๋ผ
์ œ์–ด ํ๋ฆ„ ๋ณ€๊ฒฝ JUMP ํŠน์ • ์ฃผ์†Œ๋กœ ์‹คํ–‰ ์ˆœ์„œ ์˜ฎ๊ฒจ๋ผ
CONDITIONAL JUMP ์กฐ๊ฑด์— ๋ถ€ํ•ฉํ•  ๊ฒฝ์šฐ ํŠน์ • ์ฃผ์†Œ๋กœ ์‹คํ–‰ ์ˆœ์„œ ์˜ฎ๊ฒจ๋ผ
HALT ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰ ๋ฉˆ์ถฐ๋ผ
CALL ๋˜๋Œ์•„์˜ฌ ์ฃผ์†Œ๋ฅผ ์ €์žฅํ•œ ์ฑ„ ํŠน์ • ์ฃผ์†Œ๋กœ ์‹คํ–‰ ์ˆœ์„œ ์˜ฎ๊ฒจ๋ผ
RETURN CALL์„ ํ˜ธ์ถœํ•  ๋•Œ ์ €์žฅํ–ˆ๋˜ ์ฃผ์†Œ๋กœ ๋Œ์•„๊ฐ€๋ผ
์ž…์ถœ๋ ฅ ์ œ์–ด READ(INPUT) ํŠน์ • ์ž…์ถœ๋ ฅ์žฅ์น˜๋กœ๋ถ€ํ„ฐ ๋ฐ์ดํ„ฐ ์ฝ์–ด๋ผ
WRITE(OUTPUT) ํŠน์ • ์ž…์ถœ๋ ฅ์žฅ์น˜๋กœ ๋ฐ์ดํ„ฐ ์จ๋ผ
START IO ์ž…์ถœ๋ ฅ์žฅ์น˜ ์‹œ์ž‘ํ•ด๋ผ
TEST IO ์ž…์ถœ๋ ฅ์žฅ์น˜์˜ ํ˜„์žฌ ์ƒํƒœ ํ™•์ธํ•ด๋ผ

 

๊ธฐ๊ณ„์–ด์™€ ์–ด์…ˆ๋ธ”๋ฆฌ์–ด

๊ธฐ๊ณ„์–ด(machine code): CPU๊ฐ€ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋„๋ก 0๊ณผ 1๋กœ ํ‘œํ˜„๋œ ์ •๋ณด๋ฅผ ์žˆ๋Š” ๊ทธ๋Œ€๋กœ ํ‘œํ˜„ํ•œ ์–ธ์–ด

์–ด์…ˆ๋ธ”๋ฆฌ์–ด(assembly language): 0๊ณผ 1๋กœ ํ‘œํ˜„๋œ ๊ธฐ๊ณ„์–ด๋ฅผ ์ฝ๊ธฐ ํŽธํ•œ ํ˜•ํƒœ๋กœ ๋‹จ์ˆœ ๋ฒˆ์—ญํ•œ ์–ธ์–ด

  • ์–ด์…ˆ๋ธ”๋ฆฌ์–ด๋ฅผ ๋ณด๋ฉด CPU๊ฐ€ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ๋ช…๋ น์–ด์˜ ์ข…๋ฅ˜์™€ ๋™์ž‘ ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ์–ด์…ˆ๋ธ”๋ฆฌ์–ด๋Š” ๊ธฐ๊ณ„์–ด๋ฅผ ๊ทธ๋Œ€๋กœ ๋ฒˆ์—ญํ•œ ์–ธ์–ด์ด๊ธฐ ๋•Œ๋ฌธ์—, ๋ช…๋ น์–ด์˜ ์ข…๋ฅ˜์™€ ์ƒ๊น€์ƒˆ๊ฐ€ ๋‹ค๋ฅด๋ฉด ๊ธฐ๊ณ„์–ด๋„ ๋‹ฌ๋ผ์ง€๊ณ  ์ด๋ฅผ ๋ฒˆ์—ญํ•œ ์–ด์…ˆ๋ธ”๋ฆฌ์–ด๋„ ๋‹ฌ๋ผ์ง„๋‹ค.
  • ์ฆ‰, ์—ฌ๋Ÿฌ ํ”Œ๋žซํผ์—์„œ ์‹คํ–‰๋˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ๊ฐœ๋ฐœํ•  ๋•Œ๋Š” ํŠน์ • CPU์—๋งŒ ์˜์กด์ ์ธ ์ฝ”๋“œ๋ฅผ ๋งŒ๋“ค์ง€ ์•Š์•„์•ผ ํ•œ๋‹ค.
๋”๋ณด๊ธฐ

โ“ ์–ด์…ˆ๋ธ”๋Ÿฌ vs ์ปดํŒŒ์ผ๋Ÿฌ vs ์ธํ„ฐํ”„๋ฆฌํ„ฐ

  1. ์–ด์…ˆ๋ธ”๋Ÿฌ(Assembler)
    ์–ด์…ˆ๋ธ”๋ฆฌ์–ด๋กœ ์ž‘์„ฑ๋œ ์ฝ”๋“œ๋ฅผ ๊ธฐ๊ณ„์–ด๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์œผ๋กœ, ํ”„๋กœ์„ธ์„œ ๋ช…๋ น์–ด์™€ 1๋Œ€ 1๋กœ ๋Œ€์‘๋˜๋Š” ์ €๊ธ‰์–ธ์–ด์ด๋‹ค.
    ์‚ฌ๋žŒ์ด ์ฝ๊ณ  ์ž‘์„ฑ ๊ฐ€๋Šฅํ•œ ๊ธฐ๊ณ„์–ด์ด๋‹ค. ex) NASM, MASM
    - ๊ณ ๊ธ‰ ์–ธ์–ด๋ณด๋‹ค ์ฒ˜๋ฆฌ ์†๋„๊ฐ€ ๋น ๋ฅด๋ฉฐ, ํ•˜๋“œ์›จ์–ด์™€ ๋ฐ€์ ‘ํ•œ ์ž‘์—…์— ์ ํ•ฉํ•˜๋‹ค.
    - ์ž‘์„ฑ์ด ์–ด๋ ต๊ณ  ์œ ์ง€๋ณด์ˆ˜๊ฐ€ ๊นŒ๋‹ค๋กญ๋‹ค.
  2. ์ปดํŒŒ์ผ๋Ÿฌ(Compiler)
    ๊ณ ๊ธ‰ ์–ธ์–ด(C, C++, JAVA ๋“ฑ)๋กœ ์ž‘์„ฑ๋œ ์ฝ”๋“œ๋ฅผ ๊ธฐ๊ณ„์–ด๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด๋กœ, ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰ ์ „์— ํ•œ ๋ฒˆ์— ์ด๋ฃจ์–ด์ง€๋ฉฐ ๋ณ€ํ™˜ ๊ฒฐ๊ณผ๋Š” ์‹คํ–‰ํŒŒ์ผ๋กœ ์ €์žฅ๋œ๋‹ค. ex) GCC, Clang, Visual C++ Compiler
    - ์ปดํŒŒ์ผ ํ›„์—๋Š” ์‹คํ–‰ ํŒŒ์ผ์ด ์ƒ์„ฑ๋˜์–ด ์‹คํ–‰ ์†๋„๊ฐ€ ๋น ๋ฅด๋‹ค.
    - ์‹คํ–‰ ์ „์— ์˜ค๋ฅ˜๋ฅผ ๋ฐœ๊ฒฌํ•  ์ˆ˜ ์žˆ๋‹ค(์ปดํŒŒ์ผ ์—๋Ÿฌ)
  3. ์ธํ„ฐํ”„๋ฆฌํ„ฐ(Interpreter)
    ๊ณ ๊ธ‰ ์–ธ์–ด(Python, Ruby, JS, PHP ๋“ฑ)๋กœ ์ž‘์„ฑ๋œ ์ฝ”๋“œ๋ฅผ ํ•œ ์ค„ ๋˜๋Š” ํ•œ ๋ธ”๋ก์”ฉ ์ฝ๊ณ  ์‹คํ–‰ํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์œผ๋กœ, ์‹คํ–‰ํŒŒ์ผ์„ ์ƒ์„ฑํ•˜์ง€ ์•Š๊ณ  ์ฝ”๋“œ๋ฅผ ์‹ค์‹œ๊ฐ„์œผ๋กœ ์ฆ‰์‹œ ์‹คํ–‰ํ•œ๋‹ค.
    - ์‹คํ–‰ ์†๋„๊ฐ€ ๋น„๊ต์  ๋А๋ฆฌ์ง€๋งŒ, ์‹ค์‹œ๊ฐ„ ๋””๋ฒ„๊น…์ด ๊ฐ€๋Šฅํ•˜๋‹ค.
    - ์‹คํ–‰ ํŒŒ์ผ์ด ์ƒ์„ฑ๋˜์ง€ ์•Š์œผ๋ฏ€๋กœ ์ฝ”๋“œ๋ฅผ ์ˆ˜์ •ํ•  ๋•Œ ์œ ์—ฐํ•˜๋‹ค.
Assembler Compiler Interpreter
๋ฒˆ์—ญ๊ธฐ ๋ฒˆ์—ญ๊ธฐ ํ†ต์—ญ๊ธฐ
์ €๊ธ‰์–ธ์–ด ๊ณ ๊ธ‰์–ธ์–ด ๊ณ ๊ธ‰์–ธ์–ด
์–ด์…ˆ๋ธ”๋ฆฌ์–ด๋ฅผ ๊ธฐ๊ณ„์–ด๋กœ ๋ฒˆ์—ญ ์งœ์—ฌ์ง„ ์†Œ์Šค์ฝ”๋“œ ์ „์ฒด๋ฅผ ํ•œ ๋ฒˆ์— ๋ฒˆ์—ญ ๋ช…๋ น ํ•˜๋‚˜ํ•˜๋‚˜ ์‹คํ–‰ํ•  ๋•Œ๋งˆ๋‹ค ๋ฒˆ์—ญ
  ์ „์ฒด ์†Œ์Šค์ฝ”๋“œ ๋ฒˆ์—ญ์—๋Š” ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฌ์ง€๋งŒ, ์ „์ฒด ์‹คํ–‰ ์‹œ๊ฐ„์€ ๋น„๊ต์  ๋น ๋ฆ„ ์†Œ์Šค ์ฝ”๋“œ ํ•œ ์ค„ ๋ฒˆ์—ญ์—๋Š” ์ ์€ ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฌ์ง€๋งŒ, ์ „์ฒด ์‹คํ–‰ ์‹œ๊ฐ„์€ ๋น„๊ต์  ๋А๋ฆผ
  ๋ฒˆ์—ญ ํ›„ ์˜ค๋ฅ˜ ์•Œ๋ ค์คŒ(๋””๋ฒ„๊น…์ด ์–ด๋ ค์›€) ์ˆ˜์ • ๋ฐ ๋””๋ฒ„๊น… ์‰ฌ์›€
  Java, C, C++ ๋“ฑ ๋ฒˆ์—ญํ•  ๋•Œ ์‚ฌ์šฉ Python, Perl ๋“ฑ ๋ฒˆ์—ญํ•  ๋•Œ ์‚ฌ์šฉ

 

๋ช…๋ น์–ด ์‚ฌ์ดํด

๋ฉ”๋ชจ๋ฆฌ ์•ˆ์—๋Š” ํ”„๋กœ๊ทธ๋žจ์ด ์ €์žฅ๋˜์–ด ์žˆ๊ณ , ์ด ํ”„๋กœ๊ทธ๋žจ์€ ์—ฌ๋Ÿฌ ๋ช…๋ น์–ด๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  CPU๋Š” ์ด ๋ฉ”๋ชจ๋ฆฌ์—์„œ ๋ช…๋ น์–ด๋ฅผ ์ธ์ถœํ•˜๊ณ  ์‹คํ–‰ํ•˜๊ธฐ ๋ฐ˜๋ณตํ•˜๋ฉฐ ์ „์ฒด ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•ด ๋‚˜๊ฐ„๋‹ค. ์ด๋Ÿฌํ•œ ๊ณผ์ •์„ ๋ช…๋ น์–ด ์‚ฌ์ดํด์ด๋ผ๊ณ  ํ•œ๋‹ค.

๋ช…๋ น์–ด ์‚ฌ์ดํด: CPU๊ฐ€ ๋ช…๋ น์–ด๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ณผ์ •์—์„œ ํ”„๋กœ๊ทธ๋žจ ์† ๊ฐ๊ฐ์˜ ๋ช…๋ น์–ด๋“ค์€ ์ผ์ •ํ•œ ์ฃผ๊ธฐ๋ฅผ ๋ฐ˜๋ณตํ•˜๋ฉฐ ์‹คํ–‰๋  ๋•Œ์˜ ์ฃผ๊ธฐ๋ฅผ ๋œปํ•œ๋‹ค.

 

  1. ์ธ์ถœ ์‚ฌ์ดํด(fetch cycle): ๋ฉ”๋ชจ๋ฆฌ์— ์žˆ๋Š” ๋ช…๋ น์–ด๋ฅผ CPU๋กœ ๊ฐ€์ ธ์˜ค๋Š” ๋‹จ๊ณ„
  2. ์‹คํ–‰ ์‚ฌ์ดํด(execution cycle): CPU๋กœ ๊ฐ€์ ธ์˜จ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๋‹จ๊ณ„
  3. ๊ฐ„์ ‘ ์‚ฌ์ดํด(indirect cycle): ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ํ•œ ๋ฒˆ ๋” ๋ฉ”๋ชจ๋ฆฌ์— ์ ‘๊ทผํ•˜๋Š” ๋‹จ๊ณ„
    → ์˜คํผ๋žœ๋“œ ํ•„๋“œ์— ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ๊ฐ€ ๋ช…์‹œ๋œ ๊ฒฝ์šฐ CPU๊ฐ€ ๋ช…๋ น์–ด ์ธ์ถœํ–ˆ๋”๋ผ๋„ ํ•œ ๋ฒˆ ๋” ๋ฉ”๋ชจ๋ฆฌ์— ์ ‘๊ทผํ•ด์•ผ ํ•œ๋‹ค.
  4. ์ธํ„ฐ๋ŸฝํŠธ ์‚ฌ์ดํด(interrupt cycle): ์ธํ„ฐ๋ŸฝํŠธ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋‹จ๊ณ„

๋ช…๋ น์–ด ์‚ฌ์ดํด

 


์ฐธ๊ณ  ์ž๋ฃŒ

์ด๊ฒƒ์ด ์ทจ์—…์„ ์œ„ํ•œ ์ปดํ“จํ„ฐ ๊ณผํ•™์ด๋‹ค.

 

์ด๊ฒƒ์ด ์ทจ์—…์„ ์œ„ํ•œ ์ปดํ“จํ„ฐ ๊ณผํ•™์ด๋‹ค with CS ๊ธฐ์ˆ  ๋ฉด์ ‘ | ๊ฐ•๋ฏผ์ฒ  - ๊ต๋ณด๋ฌธ๊ณ 

์ด๊ฒƒ์ด ์ทจ์—…์„ ์œ„ํ•œ ์ปดํ“จํ„ฐ ๊ณผํ•™์ด๋‹ค with CS ๊ธฐ์ˆ  ๋ฉด์ ‘ | ๊ธฐ์ˆ  ๋ฉด์ ‘๊ณผ ์‹ค๋ฌด์— ํ•„์š”ํ•œ CS ์ง€์‹, ํ•œ ๊ถŒ์œผ๋กœ ๋๋‚ด์ž!ํ”„๋กœ๊ทธ๋žจ์˜ ์‹คํ–‰ ์›๋ฆฌ๋ฅผ ์ดํ•ดํ•˜์ง€ ๋ชปํ•œ ์ฑ„ ‘์ผ๋‹จ ์ž‘๋™๋งŒ ํ•˜๋„๋ก ๋งŒ๋“œ๋Š” ๊ฒƒ’๊ณผ ์ •

product.kyobobook.co.kr

2์ง„๋ฒ•์˜ ์ •์ˆ˜ ํ‘œํ˜„

 

2์ง„๋ฒ•์˜ ์ •์ˆ˜ ํ‘œํ˜„

์šฐ๋ฆฌ๋Š” ์‹ค์ƒํ™œ์—์„œ 10์ง„์ˆ˜(Decimal)์— ๊ต‰์žฅํžˆ ์ต์ˆ™ํ•ฉ๋‹ˆ๋‹ค. 10์ง„์ˆ˜๋ž€ 0~9 ์‚ฌ์ด์˜ ๋ฌธ์ž๋“ค์„ ์ด์šฉํ•ด ์ˆ˜๋ฅผ ๊ธฐ๋กํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ปดํ“จํ„ฐ๋Š” 2์ง„๋ฒ•(Binary System)์„ ์ด์šฉํ•ด ์ˆ˜๋ฅผ ํ‘œํ˜„ํ•ฉ๋‹ˆ๋‹ค. 2์ง„๋ฒ•์€ 0

idiqpnm.tistory.com

์–ด์…ˆ๋ธ”๋Ÿฌ/์ปดํŒŒ์ผ๋Ÿฌ/์ธํ„ฐํ”„๋ฆฌํ„ฐ

 

์–ด์…ˆ๋ธ”๋Ÿฌ vs ์ปดํŒŒ์ผ๋Ÿฌ vs ์ธํ„ฐํ”„๋ฆฌํ„ฐ ๊ฐ๊ฐ์˜ ํŠน์ง• ๋ฐ ์ฐจ์ด์ 

์ปดํ“จํ„ฐ๊ณตํ•™๊ณผ, ์ปดํ“จํ„ฐ๊ณผํ•™๊ณผ ์ „๊ณต์€ ์•„๋‹ˆ์ง€๋งŒ ๊ณต๋Œ€์ƒ์ด์–ด์„œ ์ฝ”๋”ฉํ•  ์ผ์€ ๋งŽ๋‹ค๋ณด๋‹ˆ ๊ด€๋ จ ๋ธ”๋กœ๊ทธ๋“ค์„ ๋งŽ์ด ๋Œ์•„๋‹ค๋‹ˆ๊ณ  ์žˆ๋‹ค. ๊ทธ ์ค‘ ์šฉ์–ด๊ฐ€ ํ—ท๊ฐˆ๋ฆฌ๋Š” ๊ฒƒ๋“ค์ด ๋‹ค์†Œ ์žˆ์–ด์„œ ์ •๋ฆฌํ•ด๋ณด๊ณ ์ž ํ•œ๋‹ค!  ๊ทธ

captain-turtle.tistory.com

์–ด์…ˆ๋ธ”๋Ÿฌ/์ปดํŒŒ์ผ๋Ÿฌ/์ธํ„ฐํ”„๋ฆฌํ„ฐ

 

์ปดํŒŒ์ผ๋Ÿฌ Compiler / ์–ด์…ˆ๋ธ”๋Ÿฌ Assembler / ์ธํ„ฐํ”„๋ฆฌํ„ฐ Interpreter

Compiler๋ž€? ๊ฐ„๋‹จํ•˜๊ฒŒ ๋งํ•ด ๋ฒˆ์—ญ๊ธฐ์ž…๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ํ”„๋กœ๊ทธ๋žจ ์ฝ”๋“œ๋ฅผ ๊ณ ๊ธ‰์–ธ์–ด(high-level language)๋ผ๊ณ  ํ•˜๋Š” Java, C, C++ ๋“ฑ์œผ๋กœ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ปดํ“จํ„ฐ๋Š” ๊ธฐ๊ณ„ ์–ธ์–ด(Machin language)์ธ 0๊ณผ 1๋งŒ ์•Œ์•„๋“ฃ๊ธฐ ๋•Œ

saeatechnote.tistory.com