ビット演算でフラグを立ててた時に、ふと数値の桁数を調べたくなった。
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