Turing Complete Unofficial

Unsigned Less

前提レベル

このレベルを前提とするレベル

概要

2つのbyte入力を符号なし整数とみなして、 入力1が入力2より小さいならばTrueを出力する 回路を構成する問題です。

攻略

入力をA, Bとおくと、A-Bが負であるならばTrueを出力すればよいです。

解答

開く

引き算を行って負数であるかを判定すればよいのですが、 そもそも符号なし整数であるため、負数という概念が存在しません。 そのため符号拡張という方法を用いて9bitの符号付き整数の 引き算を行います。詳細についてはSigned Lessのページを参照してください。

今回の場合、両方正の数であるため符号拡張したA, Bの最上位ビットは 0であることが確定しています。よって次のように単純な回路で比較することができます。