Javascriptでわざわざビットシフト演算子を使いたいような人は殆どいないとおもいますが。。 Javascriptでも一応ビットシフトはできます。これを使って
/16 -> 1111111,11111111,00000000,00000000
のような変換を行いたいときに下記のコードを組みました
var Dec; Dec = 16 var bin; bin = Math.pow(2, Dec) - 1; bin <<= (32 - Dec); Logger.log(bin.toString(2));
Logger.log はGASで動かしたからだけなので、気にしないで。 さて、これで実行するとこうなります。
bin = -1
ううん?どゆこと?と思ったけど、32bit の最初のビットは符号(+ or -) に使うということを思い出した! 取っててよかったソフ開! というわけで、どうにかしてunsignedにするんですが、>>> という演算子でやるようです。
var Dec; Dec = 16 var bin; bin = Math.pow(2, Dec) - 1; bin <<= (32 - Dec); bin = bin >>> 0; //to unsigned Logger.log(bin.toString(2));
これで晴れてビット列が作れました!が、結局このコードは使いませんでした(^_^;)