No.3ベストアンサー
- 回答日時:
普通は、ダブルワードなんて有りません。
そのCPUのアセンブリ言語での16bitの和、差の演算で、キャリー、ボローは出ませんか?
そうであれば、まず、32bitの数値を上位16bitと下位16bitに分けます。で、自分が、紙に書いて演算するように、演算するようにプログラムを組みます。
たとえば、あなたは、足し算、引き算をするときにどうしていますか?
下位の桁から1桁ずつ計算していませんか?
和であれば、下位同士を足します。そのときに繰り上がりがあったら上位同士を足す時に繰り上がりも足しますよね?
(でも、ふつうのCPUなら、キャリーフラグも足す足し算命令があるハズなんですけどねぇ。)
自分が紙に数値を書いて演算する様に、計算をプログラムして下さい。
ただ、その数字の扱いが10進数ヒトケタではなく、16bitでまとめて考えるだけです。
引き算も一緒ね。本当は、引き算は、反転して一を引いた数(補数)にして、足し算にしちゃうんだけど、それは理解できるようなら、やってください。
かけ算は、スピードを考えないので有れば、その回数だけ足し算を繰り返します。ホントは、bit演算と、シフトと足し算なんですけど、まぁ、単純に足し算で良いでしょう。
わり算は、引き算の回数を数えましょう。そのときに、これもシフトを上手く使えば速度を稼げます。
ということで、自分で紙に書いて、実際に演算をしてから、プログラムを作成してください。
あえて、これ以上は教えません。
#実は私はプログラマさんじゃない(^^;)んで、これ以上は無理です。
No.4
- 回答日時:
No.1、No.2のymmasayanです。
キャリーやボローが簡単に扱えるのならNo.3の方の言われる方法がいいですね。
何分私の扱っていた大昔のマシンはキャリーやボローはオーバーフロー割り込みで
OSに飛んで行ってしまってましたので・・・。(^^;
それではがんばってください。
No.2
- 回答日時:
No.1です。
補足質問に回答します。「多倍長演算」というキーワードで沢山ヒットします。
ただ浮動小数点関係のものが多いですが。
大きな数を10進のN桁に分解して演算する例がありました。
アドレスのコピペができないのでGoogleで「多倍長演算 プロ言」で検索ください。
私の言ったのはこれに似ていますが、256進に分解してスピードをあげて
実行しようと言うものです。
IPアドレスの8桁区切りと似ています。
例)C1.C2.C3.C4=A1.A2.A3.A4+B1.B2.B3.B4
1)A4+B4を計算しC4に入れる。
2)C4が256以上なら256を引いてA3に1を足す。
3)以下同様に繰り返し。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- システム CPUの問題について 2 2022/07/09 12:04
- CPU・メモリ・マザーボード CPUがメモリ上に書かれている命令を実行した後の流れについての質問です。 1 2023/05/05 01:18
- C言語・C++・C# 1. 仮想CPU「exmini」を使用して,「$dataからn減算する」プログラムを作成してください 2 2022/07/04 17:49
- その他(教育・科学・学問) 採用予定数76人、受験者数169人 最終合格率、72人で合格倍率は、2.3倍 です。この試験って難し 2 2023/07/01 21:12
- 数学 「+−×÷(四則演算)」。 演算において、これ以外に考えられる方法は無いのでしょうか? 9 2022/06/03 03:24
- その他(ソフトウェア) F-BASICで計算中の実行が中途で勝手に止まり、大変困っています。 2 2023/03/02 16:15
- 数学 代数学でわからないところがあるので教えていただきたいです。 S={x,y,z}を濃度3の集合とする。 3 2022/11/13 06:05
- その他(パソコン・スマホ・電化製品) FORTRANの紙テープに穴開けるタイプの電算機使ったことありますか?マークシートに記入して、読み込 3 2023/05/29 19:54
- C言語・C++・C# プログラミング初心者です。 演算子を習い、自力で計算機を作ろうと思い、写真のようなプログラムを書きま 2 2022/08/14 21:27
- 建築学 二級建築士の構造力学についての質問です。 1 2023/03/05 06:37
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
0xffffとは?
-
8ビットのデータの、先頭ビット...
-
エクセルVBAのIf,Then 構...
-
符号無し整数xを右にnビット回転
-
verilog 符号付加減算(最上位...
-
ビットシフトってどんな時使うの?
-
CASLIIでかけ算
-
ビットの反転?
-
ラズパイのgpuの演算部分のみを...
-
整数除算の意味とは?
-
固定小数点表現で表せる整数の範囲
-
C言語で128bitの2進数のビット...
-
ブール代数で解き方がわかりません
-
三菱シーケンサーの命令でFROM ...
-
CASLとフラグレジスタ
-
PIC16F88で500という数字を8ビ...
-
一般のソフトで画像を扱う場合...
-
アクセス(2003)のVBAでビット...
-
ものづくりに向いているプログ...
-
アセンブラからC言語に変換する...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルVBAのIf,Then 構...
-
0xffffとは?
-
8ビットのデータの、先頭ビット...
-
ビットシフトってどんな時使うの?
-
一般のソフトで画像を扱う場合...
-
シーケンス制御についての質問...
-
文字参照は10進数と16進数では...
-
算術シフト演算が成り立つ理由...
-
03分22秒36のような時間の単位...
-
Python: 数値を反転させたい
-
上位ビットと下位ビットの入れかえ
-
verilog 符号付加減算(最上位...
-
命令について
-
剰余の法が大きい場合のアルゴ...
-
ビット列を表示するプログラム
-
アクセス(2003)のVBAでビット...
-
16ビットCPUで32ビットの計算方法
-
C言語で128bitの2進数のビット...
-
10進数(+-)→2進数への変換(2)
-
シーケンス制御について質問で...
おすすめ情報