Posted at

数値の桁数を調べたい

More than 5 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