2016-04-17 15 views
0

私は新入生のコンピュータ科学の学生ですので、フィールドの理解の私の不足を許します。バイナリ演算を実装する簡単な方法はありませんか?

我々は最初の手の単純なバイナリ算術によって行う方法を学んで、しかしバイナリ

でも経験の浅いプログラマを引き算を行う方法バイナリ

2)との加算を行う方法

1)私は学んだ方法がアルゴリズムコンピュータのコードexampleに翻訳することは非常に難しいことを知っていました(しかし、それは私だけかもしれません)

私たちは約2の褒め言葉を学びました。 ier(ex。負の数は現在、実装が容易と減算しただけで負の数を追加することになりました)

しかし、私が知りたいことは すべて(乗算/除算/加算/減算を行う方法があった場合には、W/O 2の補数であります)。またはこれは 2の褒め言葉の目的と私はちょうど完全にフィールドを残した 完全に役に立たず、誰も気にしないアイデアを楽しませてください csについて?

+0

ビットに収まらないときに、正の数を2の補数にどのように変換するのだろうと思います。例えば。 16ビットマシンの場合、65535-65534の計算方法は? – user3528438

+0

@ user3528438 16ビットマシンでは、必要に応じて192ビットの数値を簡単に扱うことができます。加算器は繰り返し部分のシーケンスから構築されます。ソフトウェアでも同じことができます。基本的にはキャリー/ボローを適切に処理しながら2つのワイヤーを「ワイヤー」し、加算器の有効幅を必要なだけ広げることができます。 8ビットマシンは常に16ビットの数値を処理します.8ビットの数値は非常に有用ではありません。 – Luaan

答えて

0

2の補数が有効です。正確に何を改善したいですか?これは、任意の数を扱うことができ、非常に単純な処理単位の連鎖を使用してその仕事を行います。

主な例外は、2の補数を使用しない浮動小数点数です。私はすぐにIEEE-754について学びますが、それは楽しいことです:)

最後に、noöneは2の補数を使用するように強制しています。あなたは何でもしたいことができます、それはちょうど2が素晴らしいと安いです。あなたが望むなら、ソフトウェアはローマ数字のすべてを計算させることができます。しかし、それは非常に速くなることはありません。

関連する問題