質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
86.02%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

解決済

Javaで否定論理積をもとめるプログラム

icebow
icebow

総合スコア1

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

1回答

0グッド

0クリップ

667閲覧

投稿2022/11/12 03:34

編集2022/12/13 06:21

******************************

以下のような質問にはグッドを送りましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

グッドが多くついた質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

回答1

2

ベストアンサー

Bit b1= x && y;
Bit b2= !b1;

&& や ! が使えるのは boolean 型だけで、その結果も boolean 型です。
なので Bit 型 の x や y, b1, b2 には、使えませんし入れられません。
And クラスや Not クラスを組み合わせて書くべきと思います。

LogicCircuit も And も Not も冗長ですし、本来なら Nand 共々メソッドとして Bit に書くのが使い易いと思いますが。

投稿2022/11/12 03:59

編集2022/11/12 04:26
jimbe

総合スコア10819

javahack, spoofy_dragon👍を押しています

良いと思った回答にはグッドを送りましょう。
グッドが多くついた回答ほどページの上位に表示されるので、他の人が素晴らしい回答を見つけやすくなります。

下記のような回答は推奨されていません。

  • 間違っている回答
  • 質問の回答になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

このような回答には修正を依頼しましょう。

回答へのコメント

icebow

2022/11/12 05:58

And クラスや Not クラスを組み合わせる場合どのようなコードを使用すればいいのでしょうか
jimbe

2022/11/12 06:57 編集

恐らく何かしらの課題であると見て、明確な回答(コード)は避けています。 b1, b2 にどのような値(演算結果)が入るべきなのかは「試したこと」で合っていると思いますので、後は各クラスを使用する形に変えるだけです。 ご自分で作ったのであれば使い方は分かっているはずですし、誰かが作ったのであれば使い方も説明されている、もしくは見れば分かるだけの勉強をしているはずなのではないでしょうか。
icebow

2022/11/12 08:05

考えが詰まってしまっているので回答につながりそうな検索ワード等ヒントをいただけないでしょうか
dodox86

2022/11/12 10:26

@質問者icebowさん > And クラスや Not クラスを組み合わせる場合 コード云々ではないですが、情報処理関係の授業であれば、以前にデジタル回路、論理回路について学んでいないでしょうか。それの応用で出来るように思います。
jimbe

2022/11/13 09:06 編集

> 回答につながりそうな検索ワード等ヒント う~ん・・・恐らく本件に直接使えるようなコードは、ネットにはそうそう無いと思います。構造的に"普通こんなクラスとか作らない"と感じますので。 まずは And や Not が動作する様子 ( _0_ と _1_ を and した結果等)を表示するような実行可能コードを書いて実験してみては如何でしょうか。 System.out.println("_0_ and _0_ = " + 『Andクラスを使って _0_ と _0_ を and』); System.out.println("_0_ and _1_ = " + 『Andクラスを使って _0_ と _1_ を and』); System.out.println("_1_ and _0_ = " + 『Andクラスを使って _1_ と _0_ を and』); System.out.println("_1_ and _1_ = " + 『Andクラスを使って _1_ と _1_ を and』); みたいな。これを実行して _0_ and _0_ = _0_ _0_ and _1_ = _0_ _1_ and _0_ = _0_ _1_ and _1_ = _1_ と表示されたら「 And はこう使える」と分かるのではないでしょうか。
jimbe

2022/11/13 08:39

ばっちりだと思います。
xebme

2022/11/20 10:44

すでに解決していますが、あえてコメントします。 論理回路で0,1の入出力値が決まっているので以下の置き換えが可能です。 and(a,b) = min(a,b) or(a,b) = max(a,b) not(a) = abs(a-1) 0,1に0.5(unknown)を加えた3値論理でも3つの等式が成り立ちます。3値論理はSQLでnullを含めた論理式の評価で使われています。

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
86.02%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

同じタグがついた質問を見る

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。