• ベストアンサー

最大値が0b100である3bit同士の加算の式

最大値が2進0b100の3bitと3bitの加算を最小の回数及び論理演算(or,and,xor,not)でやりたいのですが難しくていいのが思いつけません…… 教えてもらえると助かります。 ちなみに、最大値が0b100というのは1bit同士を加算した2bit、その2bit同士を加算した3bitが最大値0b100の3bit同士を加算したいからです。 2bit同士は、c0 = a0^b0, c1 = (a0&b0) ^ (a1^b1), c2 = a1&b1 //a+b=c// という感じで行けました。 そしてかなりの回数一連の処理を行うので最小の回数でやりたいのです。

質問者が選んだベストアンサー

  • ベストアンサー
  • Ogre7077
  • ベストアンサー率65% (170/258)
回答No.1

キャリーアップは変数化が必要だと思います e0 = c0 ^ d0 cf = c0 & d0 e1 = (c1 ^ d1) ^ cf cf = (c1 & d1) | (c1 & cf) | (d1 & cf) e2 = (c2 ^ d2) ^ cf e3 = c2 & d2 // キャリーアップの必要なし

at_key
質問者

お礼

動作できました、ありがとうございます!

その他の回答 (1)

  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.2

すみませんが、ちょっと意味がわかりません。 最大値が2進0b100の3bitと3bitの加算 というのは、x,yが3bitとして w=x+yのとき  0≦ x,y ≦0b100, 0≦ w ≦0b100 ということなのでしょうか? それとも w は別の制限(4bitとか)なのでしょうか? w が最大値を越えた場合、どうなるのでしょうか?溢れた分が無視されるのでしょうか?0b100になるのでしょうか? w が4bit以上あるとか、オーバーフローは無視するとかなら、行うことはただの3bit加算器です。 http://ja.wikipedia.org/wiki/%E5%8A%A0%E7%AE%97%E5%99%A8 w≦0b100, 最大値を越えたら最大値、という計算なら wが最大値となるのは、以下のいずれかの場合です。  xが最大値  yが最大値   xの下位2bit + y の下位2bit が最大値以上 xの下位2bit + y の下位2bit → t (2bit), ct(キャリーフラグ) とすると、 w2は、結果が最大値のときに1になるので  w2=x2 or y2 or ct w1,w0は、結果が最大値以上の場合には0,それ以外ではx+yの値なので  w1=(not w2) and t1  w0=(not w2) and t0

at_key
質問者

補足

ああごめんなさい・・・説明が不十分でした。 最大値が0b100とは0b101や0b111などの0b100超が存在しない、と言う意味です いくつかキャリーフラグなどの計算を略せるかな―と思っていました。

関連するQ&A

  • 全加算器

    ・EXOR回路をAND、OR、NOT回路のみを用いて書くとどのようになりますか? ・全加算器を省略せずにAND、OR、NOT回路のみ用いて論理回路を描くとどのようになりますか? できれば回路を最小化したもので教えてほしいです。 論理式の変換も含めて教えてもらえると助かります! お願いします。

  • 4入力XORの論理式

    4入力XOR A【XOR】B【XOR】C【XOR】D この式のカルノー図を描くと 0 1 0 1 1 0 1 0 0 1 0 1 1 0 1 0 というように0と1が並びます。 これを簡単化出来るのなら なるべく簡単化して、XORを使わない 論理式を出したいのですがどうすればいいですか? そのあと、74シリーズのIC(OR、AND、NOT、NANDだけ) をつかって実体回路図を描くので論理式は出来るだけ 簡単にお願いします。

  • 論理式の簡略化

    論理式を簡略化する問題なのですがよくわからないので 教えて頂きたいです。 式は(B eqv A) xor B and A です。 まず公式で A eqv B=notA xor B=A xor notBなので (notB xor A) xor B and A=(A xor notB) xor B and A「xorの交換則」             =A xor notB xor B and A「xorの結合則」 =A xor True and A             =A xor A=False となったのですがA eqv BをB xor not Aにすると (B xor notA) xor B and A=(not A xor B) xor B and A             =not A xor B xor B and A             =not A xor F and A             =not A xor F             =not A となってしまい答えが違ってしまいます。 やはり計算順序がおかしいのでしょうか? 回答お願いします<(_ _)>

  • 論理回路の問題です。

    論理回路の問題です。 (1)XNORゲートは完全系を成すか? (2)AND、OR、XORゲートそれぞれ4つ、NOTゲート6つを使うことで、最大いくつの全加算器を つくることができるか? (2)に関しては、4つが限界だと思うのですが、それ以上つくることが可能でしょうか? 分かる方おられましたらご教授よろしくお願いします。

  • 下記の動作をなるべく少ない論理演算でやりたい

    入力(0か1)はabcdefthの8つで、1の場所を右にソートして入力と同じ形で出力したいんです 論理演算はNOT、AND、OR、XORしか使えず新しい変数は1bitのみしか使えません abcdefth 00000000 → 00000000 00000010 → 00000001 00001010 → 00000011 01100111 → 00011111 11111110 → 01111111 できれば40回未満程度でやりたいのですが、うまい方法は無いでしょうか?

  • 論理演算子について

    論理演算子には Not And Or Xor Eqv Imp があるようですがNot・And・Orしか理解できませんでした。 Excel VBA ベーシックを受ける際は、上記しか理解してないままでも大丈夫ですか? しっかり勉強してすべて覚えるべきでしょうか?

  • 【論理演算子?】AND、OR、XORは知っています

    【論理演算子?】AND、OR、XORは知っていますがNADって何ですか?

  • (論理咳,論理和,排他的論理和)基本情報処理の問題

    今基本情報処理の勉強をしているのですが、 論理咳,論理和,排他的論理和の問題で、いまいちわからない部分がありますので教えてください。 【問題】 ビット数が等しい任意のビット列aとbに対して、等式=bと同じことを表すものはどれか。  ここで、AND,OR,XORはそれぞれ,ビットごとの論理咳,論理和,排他的論理和を表す。 ア a AND b = 00…0  イ a OR b = 11…1 ウ a XOR b = 00…0 エ a XOR b = 11…1 解答  「ウ a XOR b = 00…0」 となっているのですが  この質問に出ている 「00…0」 or 「11…1」は何を表しているのでしょうか?    「00…0」 = 全てのビットが0になる  「11…1」 = 全てのビットが1になる  という意味を指しているのでしょうか?

  • 論理演算について

    次の表(真理値表と言う)と等価な論理演算(AND,OR,NOTで表現) を求めてください。    入力A 入力B 出力C     1   1    0     1   0    0     0   1    1     0   0    0 という問題なのですが、どのように答えたら(NOT、AND、ORで表現するってゆー意味がわからないんです)よいのかよくわからないのです。 今日提出課題なので急いでいます。 どなたか教えてください。よろしくお願いします。

  • 乗算回路の問題

    加算回路を2つと、いくつかの論理ゲートを用いて 4bit(a2,a2,a1,a0)*3bit(b2,b1,b0)の乗算回路(出力7bit=c6,c5,c4,c3,c2,c2,c0) を設計せよ という問題です。 正直良く分かりませんが、4bitの加算回路と3bitの加算回路をANDゲートでつなげばいいのですか。 なんか全然あってないような気がします。 分かる方がいらっしゃいましたら、ご教授お願いします!

専門家に質問してみよう