๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ’ป Computer Science/- Operating System

[์šด์˜์ฒด์ œ์™€ System] ๋ฐ”์ดํŠธ ์ €์žฅ ์ˆœ์„œ Byte Order์˜ Big Endian๊ณผ Little Endian

by Wonit 2021. 7. 14.

๋ฐ”์ดํŠธ ์ €์žฅ ์ˆœ์„œ

 

์ปดํ“จํ„ฐ๊ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ Byte ๋ผ๋Š” ๋‹จ์œ„๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

 

์ด Byte ๋ฅผ ์–ด๋–ป๊ฒŒ ์ €์žฅํ•˜๋Š๋ƒ์— ๋”ฐ๋ผ์„œ PC์˜ ์„ฑ๋Šฅ์— ์ฐจ์ด๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ๋‹ค.

 

์ด๋•Œ ์—ฐ์†๋œ Byte๋ฅผ ์ €์žฅํ•˜๋Š” ๋ฐฉ๋ฒ•์„ Endian ์ด๋ผ๊ณ  ํ•œ๋‹ค.

 

์ด๋Ÿฌํ•œ Endian ์€ Little Endian ๋ฐฉ์‹๊ณผ Big Endian ๋ฐฉ์‹์œผ๋กœ ๋‚˜๋‰˜๊ฒŒ ๋˜๋Š”๋ฐ, ์šฐ์„  ์—”๋””์–ธ์ด ๋ฌด์—‡์ธ์ง€ ์•Œ์•„๋ณด์ž.

 

Endian, ์—”๋””์–ธ

 

์ปดํ“จํ„ฐ์˜ ๋ฉ”๋ชจ๋ฆฌ์™€ ๊ฐ™์€ 1์ฐจ์› ๊ณต๊ฐ„์—์„œ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์—ฐ์†๋œ ๋ฐ์ดํ„ฐ ๋Œ€์ƒ ๋ฐฐ์—ด์„ ์ €์žฅํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ฐ”๋กœ ์—”๋””์–ธ ์ด๋ผ๊ณ  ํ•œ๋‹ค.

 

์ด๋Š” ์‹œ์Šคํ…œ์ด ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š”๋ฐ ์žˆ์–ด ์ค‘์š”ํ•œ ๊ฐœ๋…๊ณผ ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•˜๊ฒŒ ๋˜๋Š”๋ฐ, ํŠน์ • ์—”๋””์–ธ ๊ธฐ๋ฒ•์„ ํ†ตํ•ด์„œ Byte Order ์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

ํ˜„๋Œ€์˜ ์šด์˜์ฒด์ œ์—์„œ๋Š” ์—ฌ๋Ÿฌ Endian ๊ธฐ๋ฒ•์ด ์‚ฌ์šฉ๋˜๋Š”๋ฐ, ํฌ๊ฒŒ 2๊ฐ€์ง€๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ๋‹ค

 

  • Big Endia
  • Little Endian

 

๊ฐ๊ฐ ์ˆœ์„œ์— ์ฐจ์ด๊ฐ€ ์กด์žฌํ•˜๋Š”๋ฐ, ์–ด๋ ต์ง€ ์•Š์œผ๋‹ˆ ๋ฐ”๋กœ ํ™•์ธํ•ด๋ณด์ž.

 

1. Big Endian

 

Big Endian ์€ ํฐ ๋‹จ์œ„๊ฐ€ ์•ž์— ๋‚˜์˜ค๋Š” ํ˜•ํƒœ๋กœ,

 

๋‚ฎ์€ ์ฃผ์†Œ์— ๋ฐ์ดํ„ฐ๋ฅผ ๋†’์€ ๋น„ํŠธ(MSB, Most Significant Bit) ๋ถ€ํ„ฐ ์ €์žฅํ•˜๋Š” ๋ฐฉ์‹

 

์„ ์˜๋ฏธํ•œ๋‹ค.

 

์˜ˆ๋ฅผ ๋“ค์–ด์„œ ๋ณด์ž๋ฉด,

 

0x12345678 ์ด๋ผ๋Š” ์ฃผ์†Œ๊ฐ€ ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด๋ณด์ž.

 

๊ทธ๋Ÿผ ์œ„ ์ •์ˆ˜๋Š” 1 Byte ๊ฐ’ 4๊ฐœ๋กœ ๊ตฌ์„ฑ๋  ์ˆ˜ ์žˆ๋‹ค.

 

  • 0x12
  • 0x34
  • 0x56
  • 0x78

 

๊ทธ๋Ÿผ ์œ„์˜ ๋ฐ์ดํ„ฐ๋Š” ๋‚ฎ์€ ์ฃผ์†Œ์— ๋ฐ์ดํ„ฐ์˜ ๋†’์€ ๋น„ํŠธ 0x12 ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ด์„œ ๋†’์€ ์ฃผ์†Œ๋กœ ์ฑ„์›Œ์ง€๊ธฐ ๋•Œ๋ฌธ์— ์•„๋ž˜์™€ ๊ฐ™์€ ํ˜•ํƒœ๋กœ ์ €์žฅ๋œ๋‹ค

 

 

2. Little Endian

 

Little Endian ์€ ์ž‘์€ ๋‹จ์œ„๊ฐ€ ๋จผ์ € ๋‚˜์˜ค๋Š” ํ˜•ํƒœ๋กœ,

 

๋‚ฎ์€ ์ฃผ์†Œ์— ๋ฐ์ดํ„ฐ๋ฅผ ๋‚ฎ์€ ๋น„ํŠธ(Least Significant Bit) ๋ถ€ํ„ฐ ์ง€์ •ํ•˜๋Š” ๋ฐฉ์‹

 

์„ ์˜๋ฏธํ•œ๋‹ค.

 

์—ญ์‹œ ์˜ˆ๋ฅผ ๋“ค์–ด์„œ ๋ณด์ž๋ฉด,

 

0x12345678 ์ด๋ผ๋Š” ์ฃผ์†Œ๊ฐ€ ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด๋ณด์ž.

 

๊ทธ๋Ÿผ ์œ„ ์ •์ˆ˜๋Š” 1 Byte ๊ฐ’ 4๊ฐœ๋กœ ๊ตฌ์„ฑ๋  ์ˆ˜ ์žˆ๋‹ค.

 

  • 0x12
  • 0x34
  • 0x56
  • 0x78

 

๊ทธ๋Ÿผ ์œ„์˜ ๋ฐ์ดํ„ฐ๋Š” ๋‚ฎ์€ ์ฃผ์†Œ์— ๋†’์€ ๋น„ํŠธ 0x78 ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ด์„œ ๋‚ฎ์€ ์ฃผ์†Œ๋กœ ์ฑ„์›Œ์ง€๊ธฐ ๋•Œ๋ฌธ์— ์•„๋ž˜์™€ ๊ฐ™์€ ํ˜•ํƒœ๋กœ ์ €์žฅ๋œ๋‹ค

 

 

Big Endian vs Little Endian

 

CPU, ์‹œ์Šคํ…œ ์•„ํ‚คํ…์ฒ˜์˜ ๋ฐฉ์‹์— ๋”ฐ๋ผ์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ์—”๋””์–ธ์˜ ์‚ฌ์šฉ์€ ๊ฐ๊ฐ ๋‹ค๋ฅผ ์ˆ˜ ์žˆ๋‹ค.

 

Endian ๋Œ€ํ‘œ์ ์ธ CPU ํŠน์ง•
๋น… ์—”๋””์–ธ, Bit Endian intel x86,AMD, EDC ๋ฌผ๋ฆฌ์ ์ธ ๋ฐ์ดํ„ฐ ์กฐ์ž‘ ๋ฐ ์‚ฐ์ˆ  ์—ฐ์‚ฐ์— ํŠนํ™”
๋ฆฌํ‹€ ์—”๋””์–ธ, Little Endian IBM, ARM, Motorola ๊ฐ ๋ฐ”์ดํŠธ๋ฅผ ๋ฐฐ์—ด์ฒ˜๋Ÿผ ์ทจ๊ธ‰ํ•  ๋•Œ ์ ํ•ฉ

 

๊ทธ๋Ÿผ ์šฐ๋ฆฌ๋Š” ์ด๋Ÿฐ ์ƒ๊ฐ์„ ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

Big Endian ์ด Little Endian ๋ณด๋‹ค ์šฐ์›”ํ•œ ์ง€์ • ๋ฐฉ์‹์ธ๊ฐ€?

 

์ด์— ๋Œ€ํ•œ ๋‹ต์€ ์„œ๋กœ ํŠน์ง•์ด ๋‹ค๋ฅด๊ธฐ ๋•Œ๋ฌธ์— ๋น„๊ตํ•˜๊ธฐ ํž˜๋“ค๋‹ค ์ด๋‹ค!

 

๋„คํŠธ์›Œํฌ ๊ด€์ ์—์„œ์˜ ์—”๋””์–ธ

 

์šฐ๋ฆฌ๋Š” ์ง€๊ธˆ๊นŒ์ง€ ์‹œ์Šคํ…œ ๊ด€์ ์˜ ์—”๋””์–ธ์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด์•˜๋‹ค.

 

ํ•˜์ง€๋งŒ ๋„คํŠธ์›Œํฌ์—์„œ๋„ Byte Order ๋ฅผ ๋‹ค๋ฃจ๊ธฐ ์œ„ํ•œ ์—”๋””์–ธ์ด ์กด์žฌํ•œ๋‹ค.

 

๋ฐ”๋กœ Big Endian ์„ ์‚ฌ์šฉํ•œ๋‹ค.

 

๊ทธ๋ž˜์„œ ์ธํ…” ์‹œ์Šคํ…œ์—์„œ ์†Œ์ผ“ ํ†ต์‹ ์„ ํ•  ๋•Œ ๋ฐ”์ดํŠธ ์ˆœ์„œ๋ฅผ ๋ณ€๊ฒฝํ•˜๋Š” ์กฐ์ž‘์ด ํ•„์š”ํ•œ ๊ฒƒ์ด๋‹ค.

 

๋‹ค์Œ ์‹œ๊ฐ„์—๋Š” HBO์™€ NBO ์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด๋„๋ก ํ•˜์ž

 

๋Œ“๊ธ€