ロジックゲートをnode.jsでシミュレーションする

Rubyで2の補数の話題ぐらいから6年ぶり*1のビット演算の話題。

ロジックゲートをシミュレーションするg8というライブラリがあったので少し触ってみました。

サンプル見ればそのままなのですが、一応手元でも試してみました。

なぜか「ぬ」という日本語名がプロジェクト名。

var g8 = require('g8');

var a = g8.word(8);
var b = g8.word(8);

console.log("a=" + a('11110000', '1'));
console.log("b=" + b('00001111', '1'));
console.log("---");
console.log("a or b = " + g8.or(a('00000000', '0'), b('00000000', '0')));
console.log("not b  = " + g8.not(b('00000000', '0')));
a=11110000
b=00001111
---
a or b = 11111111
not b  = 11110000

これを利用して、10bit CPUの実装も行われていて興味深い。

最近コードを書いていてもビットの気持ちを忘れているなと感じたので時々触って思い出そうと思う。

*1:多分...ちゃんと振り返ってない...