2進数に変換

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
チタン合金

2進数に変換

#1

投稿記事 by チタン合金 » 10年前

こんばんは、
試しに1024ビットの1024を2進数に変換したく計算しました。

1024÷2・・・0
512÷2・・・0
256÷2・・・0
128÷2・・・0
64÷2・・・0
32÷2・・・0
16÷2・・・0
8÷2・・・0
4÷2・・・0
2÷2・・・0
2÷1・・・0.5
ここまでで0.5になってしまうのですが、どうして2進数に変換できないのでしょうか。
よろしくお願いします。

box
記事: 2002
登録日時: 14年前

Re: 2進数に変換

#2

投稿記事 by box » 10年前

チタン合金 さんが書きました: 試しに1024ビットの1024を2進数に変換したく計算しました。
1024ビットの1024って何ですか?

仮に、10進数の1024を2進数に変換したいのであれば、
1024 / 2 = 512 ... 0
512 / 2 = 256 ... 0
256 / 2 = 128 ... 0
128 / 2 = 64 ... 0
64 / 2 = 32 ... 0
32 / 2 = 16 ... 0
16 / 2 = 8 ... 0
8 / 2 = 4 ... 0
4 / 2 = 2 ... 0
2 / 2 = 1 ... 0
1 / 2 = 0 ... 1

ここで商が0になったので、ここまでのあまりを下から順に並べて
10000000000
が答えです。
バグのないプログラムはない。
プログラムは思ったとおりには動かない。書いたとおりに動く。

チタン合金

Re: 2進数に変換

#3

投稿記事 by チタン合金 » 10年前

回答ありがとうございます。
多分私の計算間違いでした。

一つ疑問点がありますが、
最後0で割る数字が残らないですが、
なぜ1になるのでしょうか?

box
記事: 2002
登録日時: 14年前

Re: 2進数に変換

#4

投稿記事 by box » 10年前

チタン合金 さんが書きました: 最後0で割る数字が残らないですが、
なぜ1になるのでしょうか?
1 ÷ 2

商が
0

あまりが
1
になるところがわからないのでしょうか。

1は2よりも小さいので、1という商は立たないですね。よって、商は0。
残った分の1がそのままあまりになります。

一般に、aをpで割った商がqであまりがrである(つまり、a / p = q ... rと書ける)とき、
a = pq + r
a = 1, p = 2のとき、q = 0, r = 1
1 = 2 × 0 + 1
バグのないプログラムはない。
プログラムは思ったとおりには動かない。書いたとおりに動く。

チタン合金

Re: 2進数に変換

#5

投稿記事 by チタン合金 » 10年前

これは、小学校で習ってる計算だったようです。
回答ありがとうございましたー。

閉鎖

“C言語何でも質問掲示板” へ戻る