十进制数转任意进制

2022-04-04 18:23:16
十进制转任意进制数,返回转换后的字符串

代码

// 10 进制转任意进制
// base 表示要转换的进制,base >= 2
function convert(num, base) {
  if (num === 0) return '0'
  const r = []
  const negative = num < 0 ? '-' : ''
  num = Math.abs(num)
  while (num) {
    r.push(num % base)
    num /= base
    num |= 0
  }
  return negative + r.reverse().join('')
}

测试

console.log(convert(10, 2)) // '1010'
console.log(convert(10, 7)) // '13'

例题

504. 七进制数

给定一个整数 num,将其转化为 7 进制,并以字符串形式输出。

答案

var convertToBase7 = function(num) {
  return convert(num, 7)
};

function convert(num, base) {
  if (num === 0) return '0'
  const r = []
  const negative = num < 0 ? '-' : ''
  num = Math.abs(num)
  while (num) {
    r.push(num % base)
    num /= base
    num |= 0
  }
  return negative + r.reverse().join('')
}