大堀/研究/データ/FPU/sqrt_abs.s
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[大堀/研究/データ/FPU]]
*SQRT.s, ABS.sの実装 [#l8309a5f]
**SQRT [#fefb9864]
-開平法を使用。
***手順(手計算 for hardware) [#q43fbe37]
-2.5の場合。(expが奇数の場合とする。)
--2.5 = 1.01 x 2^1
|sign | exp| frac|
|0|10000000|010…0|
|0| 128 | 010…0|
|1bit| 8bit| 23bit|
--開平法は2bitずつ処理するため、桁合わせが必要。
--この場合frac部分は1を付加して、 1.010…0となるが frac部:[24bit]
--exp部分が奇数なので÷2できない。よってexp-1を行う。
--このとき、frac部は10.10…0となる。frac部:[24bit]
--この時、bit数が24bitだがexpが偶数の場合に揃えるために25bitにする。
-1.25の場合。(expが偶数の場合とする。)
--1.5 = 1.01 x 2^0
|sign | exp| frac|
|0|01111111|010…0|
|0| 127 | 010…0|
|1bit| 8bit| 23bit|
--奇数時と同様にfrac部は1を付加して、1.010…0となるが frac部:[24bit]
--開平法は2桁ずつ比較するため、小数点の位置を揃える必要がある。
--1.010…0を01.010…0とし開平法を適用する。frac部:[25bit]
**ABS [#h8a6f7ff]
-上位1bitを正にして、他はそのまま出力。
終了行:
[[大堀/研究/データ/FPU]]
*SQRT.s, ABS.sの実装 [#l8309a5f]
**SQRT [#fefb9864]
-開平法を使用。
***手順(手計算 for hardware) [#q43fbe37]
-2.5の場合。(expが奇数の場合とする。)
--2.5 = 1.01 x 2^1
|sign | exp| frac|
|0|10000000|010…0|
|0| 128 | 010…0|
|1bit| 8bit| 23bit|
--開平法は2bitずつ処理するため、桁合わせが必要。
--この場合frac部分は1を付加して、 1.010…0となるが frac部:[24bit]
--exp部分が奇数なので÷2できない。よってexp-1を行う。
--このとき、frac部は10.10…0となる。frac部:[24bit]
--この時、bit数が24bitだがexpが偶数の場合に揃えるために25bitにする。
-1.25の場合。(expが偶数の場合とする。)
--1.5 = 1.01 x 2^0
|sign | exp| frac|
|0|01111111|010…0|
|0| 127 | 010…0|
|1bit| 8bit| 23bit|
--奇数時と同様にfrac部は1を付加して、1.010…0となるが frac部:[24bit]
--開平法は2桁ずつ比較するため、小数点の位置を揃える必要がある。
--1.010…0を01.010…0とし開平法を適用する。frac部:[25bit]
**ABS [#h8a6f7ff]
-上位1bitを正にして、他はそのまま出力。
ページ名: