๋ฐ˜์‘ํ˜•

2์ง„๋ฒ•์„ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ 


2์ง„๋ฒ•์€ 0~1๋กœ ์ˆซ์ž๋ฅผ ํ‘œํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค. ์ „๊ธฐ ์‹ ํ˜ธ๋กœ ์ž‘๋™ํ•˜๋Š” ๊ธฐ๊ณ„์ธ ์ปดํ“จํ„ฐ๋Š” 2์ง„๋ฒ•์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์„ค๊ณ„๋๋‹ค.

 

์ „๊ธฐ์  ์‹ ํ˜ธ๋กœ ์˜๋ฏธ๋ฅผ ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ๋Š” ์ตœ์†Œ ๋‹จ์œ„๋Š” ON, OFF์ด๋‹ค. ์ „๊ธฐ ์‹ ํ˜ธ๊ฐ€ ์žˆ๋Š” ์ƒํƒœ๋ฅผ 1, ์—†๋Š” ์ƒํƒœ๋ฅผ 0์œผ๋กœ ์„ค์ •ํ•œ๋‹ค. ์ด๋ ‡๊ฒŒ ๋‹จ 2๊ฐ€์ง€ ์ƒํƒœ๋งŒ 2์ง„์ˆ˜๋กœ ํ‘œํ˜„ํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€์žฅ ๊ฐ„๋‹จํ•˜๊ณ  ์ •ํ™•ํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

 

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

 

๊ฐ ์ง„๋ฒ•์˜ ํŠน์ง•


  • 2์ง„์ˆ˜ : Binary Number | ไบŒ่ฟ›ๅˆถ (0~1๋กœ ์ˆซ์ž๋ฅผ ํ‘œํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•)
  • 3์ง„์ˆ˜ : Ternary Number | ไธ‰่ฟ›ๅˆถ (0~2๋กœ ์ˆซ์ž๋ฅผ ํ‘œํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•)
  • 8์ง„์ˆ˜ : Octal Number | ๅ…ซ่ฟ›ๅˆถ (0~7๋กœ ์ˆซ์ž๋ฅผ ํ‘œํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•)
  • 10์ง„์ˆ˜ : Decimal Number | ๅ่ฟ›ๅˆถ (0~9๋กœ ์ˆซ์ž๋ฅผ ํ‘œํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•)
  • 16์ง„์ˆ˜ : Hexadecimal | ๅๅ…ญ่ฟ›ๅˆถ (0~9์™€ ์•ŒํŒŒ๋ฒณ A~F(10~15)๋กœ ์ˆซ์ž๋ฅผ ํ‘œํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•)

 

์ง„๋ฒ• ๋ณ€ํ™˜ ๊ณต์‹


8์ง„๋ฒ•, 3์ง„๋ฒ•๋„ ๋ชจ๋‘ ์•„๋ž˜ ๋ฐฉ๋ฒ•์œผ๋กœ ๋ณ€ํ™˜ํ•  ์ˆ˜ ์žˆ๋‹ค

 

10์ง„๋ฒ•์€ 0~9๋กœ ์ˆซ์ž๋ฅผ ํ‘œํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค. 1024 ๋ผ๋Š” ์ˆซ์ž๊ฐ€ ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๊ณ , ๊ฐ ์ˆซ์ž์— ๊ฐ€์ค‘์น˜๋ฅผ ๋‘ฌ์„œ(10โฐ ๊ฐ™์€ ๊ฒƒ) ๊ณ„์‚ฐํ•ด๋ณด๋ฉด ์•„๋ž˜์™€ ๊ฐ™๋‹ค. ์˜ค๋ฅธ์ชฝ ์ˆซ์ž๋ถ€ํ„ฐ ๊ณ„์‚ฐํ•œ๋‹ค.

4 : 4 * 10โฐ = 4 (๋ชจ๋“  ์ˆ˜์˜ 0์Šน์€ 1์ด๋‹ค)
2 : 2 * 10¹ = 20
0 : 0 * 10² = 0
1 : 1 * 10³ = 1000
--------------------
4 + 20 + 0 + 1000 = 1024

 

10์ง„์ˆ˜ 0~10๊นŒ์ง€์˜ 2์ง„์ˆ˜๋Š” ์•„๋ž˜์™€ ๊ฐ™๋‹ค(์™ผ์ชฝ์ด 10์ง„์ˆ˜ ์˜ค๋ฅธ์ชฝ์ด 2์ง„์ˆ˜).

0 = 0
1 = 1
2 = 10
3 = 11
4 = 100
5 = 101
6 = 110
7 = 111
8 = 1000
9 = 1001
10 = 1010

 

ํ”ผ์ œ์ˆ˜(Dividend)๊ฐ€ ์ œ์ˆ˜(Divisor)๋ณด๋‹ค ์ž‘์•„์„œ ๋‚˜๋ˆŒ ์ˆ˜ ์—†์œผ๋ฉด ๋ชซ์€ ํ•ญ์ƒ 0์ด ๋˜๊ณ  ํ”ผ์ œ์ˆ˜๊ฐ€ ๋‚˜๋จธ์ง€๊ฐ€ ๋œ๋‹ค. ์˜ˆ๋ฅผ๋“ค์–ด 1 ÷ 2 ๊ณ„์‚ฐ์‹์—์„œ ํ”ผ์ œ์ˆ˜ 1์ด ์ œ์ˆ˜ 2๋ณด๋‹ค ์ž‘์œผ๋ฏ€๋กœ ๋ชซ์€ 0์ด๊ณ , ๋‚˜๋จธ์ง€๋Š” 1์ด๋‹ค.

 

10์ง„์ˆ˜ 11์„ 2์ง„์ˆ˜๋กœ ๋ณ€ํ™˜ํ•  ๋• ๋ชซ์ด 0์ด ๋ ๋•Œ๊นŒ์ง€ ๊ณ„์† 2๋กœ ๋‚˜๋ˆˆ๋‹ค.

11 / 2 = 5(๋ชซ) | 1(๋‚˜๋จธ์ง€)
5 / 2 = 2 | 1
2 / 2 = 1 | 0
1 / 2 = 0 | 1
-------------
1011 (์•„๋ž˜์ชฝ ์ˆซ์ž๋ถ€ํ„ฐ ์ถ”๊ฐ€ํ•œ๋‹ค)

 

๋ฐ˜๋Œ€๋กœ 2์ง„์ˆ˜ 1011์„ 10์ง„์ˆ˜๋กœ ๋ณ€ํ™˜ํ•œ ์˜ˆ์‹œ. ์˜ค๋ฅธ์ชฝ ์ˆซ์ž๋ถ€ํ„ฐ ๊ณ„์‚ฐํ•œ๋‹ค.

1 : 1 * 2โฐ = 1
1 : 1 * 2¹ = 2
0 : 0 * 2² = 0
1 : 1 * 2³ = 8
--------------
1 + 2 + 0 + 8 = 11

 

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ ์ง„๋ฒ• ๋ณ€ํ™˜


Number ๊ฐ์ฒด์˜ toString() ๋ฉ”์„œ๋“œ๋กœ 10์ง„์ˆ˜ ์ˆซ์ž๋ฅผ ๋‹ค๋ฅธ ์ง„์ˆ˜๋กœ ๋ณ€ํ™˜ํ•˜๊ณ , Number.parseInt() ๋ฉ”์„œ๋“œ๋กœ ๋‹ค๋ฅธ ์ง„์ˆ˜์˜ ์ˆซ์ž๋ฅผ 10์ง„์ˆ˜๋กœ ๋ณ€ํ™˜ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

โถ 10์ง„์ˆ˜ → ๋‹ค๋ฅธ ์ง„์ˆ˜ ๋ณ€ํ™˜ : toString() ์‚ฌ์šฉ

toString() ํŒŒ๋ผ๋ฏธํ„ฐ์— ๋ณ€ํ™˜ํ•˜๊ณ  ์‹ถ์€ ์ง„๋ฒ• ์ˆ˜๋ฅผ ์ž…๋ ฅํ•œ๋‹ค.

const decimalNum = 1024; // 10์ง„์ˆ˜
const ternaryNum = decimalNum.toString(3); // '1101221' (10์ง„์ˆ˜ 1024๋ฅผ 3์ง„์ˆ˜๋กœ ๋ณ€ํ™˜)

 

โท ๋‹ค๋ฅธ ์ง„์ˆ˜ → 10์ง„์ˆ˜ ๋ณ€ํ™˜ : parseInt() ์‚ฌ์šฉ

parseInt() ์ฒซ๋ฒˆ์งธ ํŒŒ๋ผ๋ฏธํ„ฐ์—” ๋ณ€ํ™˜ํ•˜๋ ค๋Š” ์ˆซ์ž, ๋‘๋ฒˆ์งธ ํŒŒ๋ผ๋ฏธํ„ฐ์—” ํ•ด๋‹น ์ˆซ์ž์˜ ์ง„๋ฒ• ์ˆ˜๋ฅผ ์ž…๋ ฅํ•œ๋‹ค.

const ternaryNum = '1101221'; // 3์ง„์ˆ˜
const decimalNum = Number.parseInt(ternaryNum, 3); // 1024 (3์ง„์ˆ˜ 1101221์„ 10์ง„์ˆ˜๋กœ ๋ณ€ํ™˜)

 

โธ ๋ฐ˜๋ณต๋ฌธ์ด๋‚˜ ๋ฐฐ์—ด ๋ฉ”์„œ๋“œ๋ฅผ ์ด์šฉํ•ด์„œ ์ง์ ‘ ๊ตฌํ˜„ํ•  ์ˆ˜๋„ ์žˆ๋‹ค.

// 10์ง„์ˆ˜ > ๋‹ค๋ฅธ ์ง„์ˆ˜ ๋ณ€ํ™˜
const convertToRadixNum = (num, radix) => {
  const resultNum = [];
  while (num !== 0) {
    resultNum.unshift(num % radix);
    num = Math.floor(num / radix);
  }
  return Number(resultNum.join(''));
};

convertToRadixNum(100, 2); // 1100100 (10์ง„์ˆ˜ 100์„ 2์ง„์ˆ˜๋กœ ๋ณ€ํ™˜)

 

// ๋‹ค๋ฅธ ์ง„์ˆ˜ > 10์ง„์ˆ˜ ๋ณ€ํ™˜
const convertToDecimalNum = (num, radix) => {
  return [...String(num)] // ['1', '1', '0', ...]
    .reverse()
    .reduce((acc, v, i) => acc + v * radix ** i, 0);
};

convertToDecimalNum(1100100, 2); // 100 (2์ง„์ˆ˜ 1100100์„ 10์ง„์ˆ˜๋กœ ๋ณ€ํ™˜)

 

์ฐธ๊ณ  ๋งํฌ


10์ง„๋ฒ•๊ณผ 2์ง„๋ฒ•์˜ ์›๋ฆฌ  

 


๊ธ€ ์ˆ˜์ •์‚ฌํ•ญ์€ ๋…ธ์…˜ ํŽ˜์ด์ง€์— ๊ฐ€์žฅ ๋น ๋ฅด๊ฒŒ ๋ฐ˜์˜๋ฉ๋‹ˆ๋‹ค. ๋งํฌ๋ฅผ ์ฐธ๊ณ ํ•ด ์ฃผ์„ธ์š”
๋ฐ˜์‘ํ˜•