2016-03-19 7 views
0

は、私は次の文字列を持っている:JavaScriptの計算8進数で表現たとえば

15+6 

私は8進数でこの式を計算します。だから私は取得したい:

23 

このケースをサポートするjsには何らかの機能がありますか?そうでない場合は、8進表現を計算する最良の方法は何ですか?

答えて

2

はい、parseInt()を基数8で使用し、基数を使用してNumber#toString()で8進数に変換することができます。

こちらをご覧ください:Numbers and dates 8進数の使用は厳密なモードに依存します。

document.write((parseInt(15, 8) + parseInt(6, 8)).toString(8) + '<br>');

+0

は、なぜ我々はそれを文字列として変換する必要がありますか? 'parseInt(15,8)+ parseInt(6,8)'がなぜ '19 'を表示しているのか、混乱しています。 –

+1

' ES6'では '0o15 + 0o6 == 19 && 0o15 + 0o6 = = 0o23' – isvforall

0

あなたはES6標準を使用して...やるべき多くの計算がある場合に減らす、またはニーナの答え@

var str = '15+6'; 
var res = str.split('+').reduce(function(a,b){ 
    return a + parseInt(b, 8) 
}, 0).toString(8) 
console.log(res) // 23 
+0

式に "+"演算子だけがない場合はどうなりますか? 私たちはregex/\ + | \ - /を使うことができますが、計算中にどのように現在の操作を定義することができます。 また、(分割しないで)式を計算するよりエレガントな方法があることを願っています –

1

を使用することができます。

ECMAScript 6では、8進数は「0o」という数字の前に付けることでサポートされています。

var result = 0o15 + 0o6; 
 
document.write(result.toString(8));

関連する問題