アプリ版:「スタンプのみでお礼する」機能のリリースについて

タイトル通りです
ネットで調べてもそれらしい情報がなかったので質問します
たとえば1010.11と111.101の2進数を和と差を求めるにはどうしたらいいのでしょうか?
自己解決もできずたいへん困っています
なるべく早い回答をお待ちしています

A 回答 (4件)

#3です。



A#3を補足しもう少し詳しく書いて載せます。
積み算の計算の桁位置を正しく表示させるため図にしました。
文字が細かくなりますので図を拡大して見て下さい。
(図を右クリックして拡大を選択すると拡大しますが図の一部
 しか見られなくなりますので、カーソルで見たい部分を移動
 して見て下さい。)
「小数点以下2進数どうしの和と差の求めかた」の回答画像4
    • good
    • 1
この回答へのお礼

お礼遅くなってすみません
大変わかりやすい回答有難うございます。
難しい数字を見るより図で載せてくれたのがわかりやすかったです
解決したので閉めます

お礼日時:2010/12/18 11:35

10進と同じように小数点の位置をそろえて2進数で足し算、引き算をするのはだめですか?



01010.110
00111.101(+
-----------
10010.011

01010.110
00111.101(-
-----------
00011.001

小数点の位置は合わせてあれば、意識しないで計算し、計算後、小数点を元の位置に戻せはいいです。

結果が負になる場合は、10進法の水道メーターを逆回しした9の補数で表現法にならって、
小数点以下の桁の無く、かつ固定桁数の2進数の加減算では負数は「2の補数法」を使って表現され、結果が負になる場合は負数も2の補数で扱われます。

しかし、小数点以下の桁が存在したり、桁数が固定で無い2進数の加減算での負数の表現や演算結果が負になる場合の負数の表現は「1の補数法」を使って扱えばいいかと思います。

2進数の先頭が1の場合は負数として扱い、先頭が0の場合は正数として扱います。
そして、先頭の0や1は必要に応じて何桁でも符号を表す0や1を補うものとします。
-100<10進> = -(100<10進>) = -(01100100)=10011011
と表します。10011011の先頭の1は負数を表します。つまり負数については
10011011 = 111111110011011 = …11111111111110011011
ということです。逆に正数の場合、先頭符号を表す0の上位桁には0がいくつあっても
01100100 = 0000001100100 = …0000000000001100100
すべて同じ数値ということです。

計算例
例)3.625-5.375=-1.75の2進数での計算

0011.101
0101.011(-
-----------
1110.010 

これは負数なので負号を分離するには
1⇔0と反転して最後の桁に1を加えて
-(1110.010) = 0001.101 + 0.001 = 1.110 = 1.75<10進>
    • good
    • 0

10進数と同じ.

    • good
    • 1

筆算計算で


0+0=0
0+1=1
1+0=1
1+1=10
---------
0-0=0
10-1=1
1-0=1
1-1=0
    • good
    • 1

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!