🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Pythonista

Pythonistaは、iOS上でPythonプログラミングができる開発アプリです。さらに、Pythonの関数・変数などを自動で補完する便利なコードエディタや、PythonスクリプトをiOS上で多様な形で機能させる各種機能も内包しています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

2回答

1839閲覧

python 全加算器について

Curry

総合スコア4

Pythonista

Pythonistaは、iOS上でPythonプログラミングができる開発アプリです。さらに、Pythonの関数・変数などを自動で補完する便利なコードエディタや、PythonスクリプトをiOS上で多様な形で機能させる各種機能も内包しています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2022/12/03 02:09

編集2022/12/03 02:24

実現したいこと

今piazzaというサイトで学んでいる初心者です。そのサイトではCランクのレベルを挑戦しています。基本的な標準入力や出力をすることはできます。

問題

京子ちゃんは 二進数 の整数同士で足し算をするプログラムを作成したいと思っています。
二進数の足し算において、下から 1 けた目の計算は半加算器でできることを知り、 2 けた目の計算も同じように足し算ができないかと考えています。

該当のソースコード

ソースコード a, b, c1 = map(int, input().split()) # 半加算器のプログラム def halfAdder(a, b): c = a & b s = a ^ b return (c, s) cx, sy = halfAdder(a, b) cy, s = halfAdder(sy, c1) c2 = cx ^ cy print(c2, s) ### 補足情報(FW/ツールのバージョンなど) わからないところ2進法、half Adderの使い方、return関数 です。解説よろしくお願いします。

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

meg_

2022/12/03 02:15 編集

コードは「コードの挿入」で記入してください。 > 解説を読んだのですが、初心者ということもあり、なかなか理解できなかったです。 ソースはどこでしょうか?URLを追記ください。 また、解説のどの説明が分からなかったのかも追記ください。(同じ説明をしても無駄ですので) > 初心者の私でも理解できるよう解説よろしくお願いします。 「初心者」といっても色々ありますが、プログラミング初心者ですか?Pythonの初心者ですか?どこまで学習されていますか?その辺りの情報がないと「理解できるよう解説」はとても難しいかと思います。
退会済みユーザー

退会済みユーザー

2022/12/03 02:37

piazzaだとpaizaさんが悲しみそうです。直してあげてください。
TakaiY

2022/12/03 03:30 編集

わからないところに「return関数」 がありますが、return(関数ではない)のどこがわからないでしょうか。
meg_

2022/12/03 03:32

> 今piazzaというサイトで学んでいる初心者です。 「paiza」のことでしょうか? > そのサイトではCランクのレベルを挑戦しています。 スキルチェックのことでしょうか? 利用規約の禁止事項として下記があります。本質問は抵触するものと思われますが大丈夫でしょうか? *********************************** ブログ・SNS等の各種媒体(インターネット媒体に限られず、不特定多数が閲覧可能なものを全て含む。)上において、当社がpaizaで出題した問題の内容、当該問題に対する解答、解答へのヒント等の示唆およびカンニング等の不正を助長する内容等を掲載する行為。 ***********************************
guest

回答2

0

ベストアンサー

2進法

さすがに、これは自分で調べて勉強していただきたい。

half Adderの使い方

half adderは半加算器です。 で、この問題は半加算器を2つ(2回)使って全加算器を作る問題です。
以下の記事がかなり丁寧に解説していますので、参照ください。
https://www.seplus.jp/dokushuzemi/ec/fe/fenavi/mastering_tech/digital_logic/

return関数

なにがわからないのかわからないので保留です。

投稿2022/12/03 03:28

TakaiY

総合スコア13733

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

def halfAdder(a, b): # 2つの入力値a, bの論理積をcに代入 c = a & b # 2つの入力値a, bの論理和をsに代入 s = a ^ b # タプル(c, s)を返す return (c, s) # 入力値a, b, c1を受け取る a, b, c1 = map(int, input().split()) # halfAdder()を適用し、結果をcx, syに代入 cx, sy = halfAdder(a, b) # halfAdder()を適用し、結果をcy, sに代入 cy, s = halfAdder(sy, c1) # cxとcyの論理和をc2に代入 c2 = cx ^ cy # c2とsの値を出力 print(c2, s)

このプログラムでは、halfAdder()という関数を定義し、2つの入力値を受け取り、それらの論理積と論理和を計算します。そして、入力値 a, b, c1 を受け取り、半加算器を2回適用することで、二進数の整数の加算の結果を出力します。

投稿2022/12/03 02:17

dark-eater-kei

総合スコア1248

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問