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

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

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

Whileは多くの言語で使われるコントロール構造であり、特定の条件が満たされる限り一連の命令を繰り返し実行します。

アルゴリズム

アルゴリズムとは、定められた目的を達成するために、プログラムの理論的な動作を定義するものです。

Python

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

Q&A

1回答

1296閲覧

2進数4桁の加算をpythonで書きたいです

A_.

総合スコア5

while

Whileは多くの言語で使われるコントロール構造であり、特定の条件が満たされる限り一連の命令を繰り返し実行します。

アルゴリズム

アルゴリズムとは、定められた目的を達成するために、プログラムの理論的な動作を定義するものです。

Python

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

0グッド

1クリップ

投稿2021/06/08 17:22

下の➀のpythonのプログラムを改変して、2進数4桁の加算をpythonで書きたいです。

A0A41067の最後の数字に1を加えた数を2進数に変換したものに、(1つめ)2進数の3、すなわち「0011を加算」した結果、(2つめ)2進数の15、すなわち「1111を加算」した結果の2つの結果を2回連続で実行したいです。


2進数の4桁の数字どうしの加算や減算を行うアルゴリズムを考えたい。
キーボードから入力された2進数の数字が4桁となるよう、すなわち、"111"のように3桁ではなく、"0111"となるように準備をするアルゴリズムを考えてみる。

以下のPythonのプログラムでは、キーボードから2進数の数(0または1で構成される数)を変数xに入力している。

・サブプログラム
def soroeru(x):
nagasa = len(x)
while nagasa < 4:
x = "0" + x
nagasa = len(x)
return(x)

ここからメインプログラム
x = input()
y = soroeru(x)
print(x,y)

このpythonのプログラムを実行し、キーボードから111のように入力すると、画面には
111 0111
と表示される

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

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

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

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

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

episteme

2021/06/08 19:43

しつもん は なんですか?
ozwk

2021/06/08 23:47

> A0A41067の最後の数字に1を加えた数 って何? A0A41068 ?
guest

回答1

0

Kutoさんは、まず基礎勉強から始めた方が良いかと思います。

コンピュータプログラムを学ぶことは積み重ねです。マラソンをしたいから今日から42.195km走るというのは無謀ですね。最初は5kmぐらいから始めて基礎体力をつけるものでしょう。それと同じことです。

まず、2進数というものはPythonを含む多くのプログラミング言語には存在しないことを理解してください。私に知らないプログラミング言語も多数あるので断言はできませんが、おそらくひとつも存在しないのではないでしょうか。少なくともコンピュータの基礎となっている数学の世界では2進数というものは存在しません。

存在するのは「数の2進表記」とか「二進数による数値表現」です。つまり、2進数と呼んでいるものはデータの型ではなく表現なのです。

次に、見た目が同じであっても、データとしては同じでないものがあることを理解してください。

これはコードで理解した方がわかりやすいでしょう。

python

1>>> int42 = 42 2>>> str42 = "42" 3>>> 4>>> print(int42) 542 6>>> print(str42) 742

しかし、以下のようにすると違いが分かります。

python

1>>> print(int42 + int42) 284 3>>> print(str42 + str42) 44242

int42はint型のデータで、str42はstr型のデータです。
これを調べるにはtypeを使います。

python

1>>> print(type(int42)) 2<class 'int'> 3>>> print(type(str42)) 4<class 'str'> 5

このあと、関数とは何かとか、数値リテラルは何かとかを良く理解しましょう。
そういうところから基礎を重ねていくことが結局は近道です。

投稿2021/06/08 23:57

ppaul

総合スコア24666

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問