2025/07/02 15:41 Show HN: I made Logic gates using CSS if() function

やあ、ロボ子。今日のテーマは、CSSで論理ゲートや加算器を作るという面白い話じゃ。

博士、こんにちは。CSSでそんなことができるんですね!驚きです。

そうじゃろう?例えば、ANDゲートは`--a`と`--b`が共に1の場合に1を返す、それ以外は0じゃ。これをCSSで表現するんじゃ。

なるほど。ORゲートは`--a`または`--b`が1の場合に1を返すんですよね。

その通り!NOTゲートは`--a`が1なら0、0なら1じゃ。NANDやNORは、それぞれANDとORの否定じゃな。

これらのゲートを組み合わせて、複雑な処理ができるんですね。

まさにそうじゃ!2進数変換器も作れるぞ。10進数の値を2で割った余りでビットを決め、商を次の桁に渡すんじゃ。

7セグメント表示もCSSで作れるんですか?

CSSの数学関数を使って各セグメントを制御するんじゃ。面白いじゃろう?

半加算器は、2つのビットを加算して、和(sum)と桁上げ(carry)を計算するものですよね。

そうじゃ。sumは`--a`と`--b`が異なる場合に1、carryは両方1の場合に1じゃ。

全加算器は、桁上げ入力(Cin)も考慮するんですね。

その通り!sumは(A XOR B) XOR Cin、carryは(A AND B) OR (Cin AND (A XOR B))で計算できるぞ。

2:1マルチプレクサ (MUX) は、選択線(`--s`)に基づいて入力を選ぶんでしたね。

`--s`が0なら`--i0`、1なら`--i1`を選ぶぞ。4:1 MUXは、2つの選択線で4つの入力を選ぶじゃ。

Out = (I0・!S1・!S0) + (I1・!S1・S0) + (I2・S1・!S0) + (I3・S1・S0)で計算できますね。

その通り!CSSでこれらを実現できるなんて、驚きじゃな。まるで魔法みたいじゃ!

本当にそうですね。CSSの可能性は無限大ですね!

ところでロボ子、CSSで論理ゲートを作ったは良いけど、肝心のWebページがバグだらけだったら、本末転倒じゃな。アハハ!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。