# Dec2Bin Example

Example 1:

输入:n = 10
输出:1010
解释:将十进制转换为二进制

Example 2:

输入:n = 15
输出:1111
解释:将十进制转换为二进制

# Solving Ideas

function dec2bin(decNumber) {
  const stack = new Array()
  //decNumber > 0 停止循环
  while (decNumber > 0) {
    // 将每次取模的数存入栈中
    stack.push(decNumber % 2)
    // 同时向下取 / 2 的值 
    decNumber = ~~(decNumber / 2)
  }
  // 将数组颠倒转换成字符串再强制转换为数字
  return +stack.reverse().join('')
}
console.log(dec2bin(25))

# Bin2Dec Example

Example 1:

输入:n = 1010
输出:10
解释:将二进制转换为十进制

Example 2:

输入:n = 1111
输出:15
解释:将二进制转换为十进制

# Solving Ideas

function bin2dec(binNumber) {
  // 将其切割成数组
  const stack = (binNumber + '').split('')
  // edge case
  stack.forEach(item => {
    if (+item > 1) throw new Error('Please enter the correct binary number')
  })
  // 用于记录数字位置的次方 从最后一位开始
  let pow = stack.length - 1
  let res = 0
  for (let i = 0; i < stack.length; i++){
      
    // 如果数组中是 0, 就不必算
    if (stack[i] != 0) {
      stack[i] = 2 ** pow
    }
    
    // 递减
    pow--
  }
  
  // 将数组元素依次相加
  stack.forEach(item => res += +item)
  return res
}