アプリ版:「スタンプのみでお礼する」機能のリリースについて

ビット演算を勉強しているのですが、2進数はあくまでも考え方であって、実際のJavaScriptコードに2進数を記述してはいけないのでしょうか?
・16進数は使える?
・それとも10進数だけしか使えない?

A 回答 (4件)

 


2進数と16進数は同じもの
使い易い様に4ビットごとのまとめたのが16進数なので性質は同じ
 

この回答への補足

回答ありがとうございました。

・下記はなぜ8になるのでしょうか?
・0010か、2になると思ったのですが…
//10進数
console.log(0|2); //2
//2進数
console.log(0000|0010); //8

補足日時:2014/04/25 03:27
    • good
    • 0

2進数とか16進数とかは数値の表現方法であって、


どんな書き方をしても数値としては同じです。

そのため、以下の記述はtrueになります。
alert( 0x100 === 256 ); //true: 16進数リテラルと10進数リテラル
alert( 0100 === 64 ); //true: 8進数リテラルと10進数リテラル

また、数値そのものに何進数とか言う概念はありません。例えば
var a = 0x100;
var a = 256;
この2つの記述は全く同じ意味なのですから、
数値aは10進数であるとか16進数であるとか言えないのは分かりますね?
なので、n進数だったら計算に使える/使えないというのはナンセンスです。

(例えるなら音としての「あ」という発音が、
ひらがなであるとかカタカナであるとか言うのがナンセンス、みたいな感じでしょうか。
音にひらがなもカタカナも無いけど、音を表現するときには何らかの文字を使う。)


> 実際のJavaScriptコードに2進数を記述してはいけないのでしょうか?
数値リテラルとして2進数表記が存在するかという意味でしたら、
昔のJavaScriptには2進数リテラルは存在しませんでした。

しかし、最近のブラウザでは、
strictモードで2進数リテラルと新しい8進数リテラルが使えるようです。

"use strict";
alert( 0o100 === 64 ); //true(strictモードでは0100という記述はエラー)
alert( 0b100 === 4 ); //true

この回答への補足

回答ありがとうございました。

・下記はなぜ8になるのでしょうか?
・0010か、2になると思ったのですが…
//10進数
console.log(0|2); //2
//2進数
console.log(0000|0010); //8

補足日時:2014/04/25 03:26
    • good
    • 0

2進数リテラルはあります


ただし20文字も30文字も1と0を並べて書くと案外分かりにくいので結局16進数が重宝します

この回答への補足

回答ありがとうございました。

・下記はなぜ8になるのでしょうか?
・0010か、2になると思ったのですが…
//10進数
console.log(0|2); //2
//2進数
console.log(0000|0010); //8

補足日時:2014/04/25 03:28
    • good
    • 0

0010は2進数リテラルではありません。


0~は旧8進数リテラルです。
0b~が2進数リテラルです。
    • good
    • 0
この回答へのお礼

回答ありがとうございました。
参考になりましたー

お礼日時:2014/04/28 11:47

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!