JavaScript
CoffeeScript

数値の桁数を調べたい

More than 3 years have passed since last update.

ビット演算でフラグを立ててた時に、ふと数値の桁数を調べたくなった。
log関数を使うと求められるらしい。
はじめてlog関数使ったぁ。。

基数のデフォ値が2になってますが、
10のほうが使う機会多いかな?

実装

coffee
getDigits = (num, base = 2)->
  Math.log(num) / Math.log(base) + 1 | 0
js
var getDigits;

getDigits = function(num, base) {
  if (base == null) base = 2;
  return Math.log(num) / Math.log(base) + 1 | 0;
};

使い方

coffee
getDigits 10
# 4 (10 == 2進数で 1010)

getDigits 10, 10
# 2
js
getDigits(10);
// 4 (10 == 2進数で 1010)

getDigits(10, 10);
// 2