回答編集履歴

4

追記対応

2017/06/20 15:51

投稿

otn
otn

スコア84421

test CHANGED
@@ -17,3 +17,23 @@
17
17
  私の記憶では、上記以外は、ビット構成など同じだったはずです。
18
18
 
19
19
  IEEE754を知った時、「え?仮数部が1以上2未満なの?」とビックリした記憶があります。
20
+
21
+
22
+
23
+ #追記に対して
24
+
25
+ > 仮数部の16進数を10進数に直すと、6141635となります。
26
+
27
+
28
+
29
+ そこがそもそも間違っています。
30
+
31
+
32
+
33
+ 0x5db6c3は、小数部ですが、23bitなので、省略された24bit目に整数部1を付けて、0xddb6c3 が仮数です。小数点は、先頭ビットの次にありますので2進数で表すと、0b1.101 1101 1011 0110 1100 0011 。指数は 0x7fから127を引いて0ですね。
34
+
35
+ 仮数部を0.5以上にしないといけないので、仮数を2で割って、指数に1を足します。全体の値としては変わりません。仮数を2で割るというのは、2進数で小数点を1桁左へ移動させるということなので、0b0.1101 1101 1011 0110 1100 0011
36
+
37
+ 仮数を10進数に直すと、0.5+0.25+0.0625+(以下略) = 0.8660699~
38
+
39
+ これに2の1乗を掛けた物が、元の数値になります。

3

訂正

2017/06/20 15:51

投稿

otn
otn

スコア84421

test CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  その通り、歴史的理由です。
6
6
 
7
- C言語がUnix上で発展してきた事はご存じでしょうが、Unixは今は無きDEC(COMPAQが吸収合併さらにHPと合併)のPDP-11というコンピューター(ミニコン)上で誕生しました。
7
+ C言語がUnix上で発展してきた事はご存じでしょうが、初期のUnixは今は無きDEC(COMPAQが吸収合併さらにHPと合併)のPDP-11というコンピューター(ミニコン)上で動いていました。
8
8
 
9
9
  PDP-11や後継のVAX-11が使っていた浮動小数点は、仮数部が0.5以上1未満になるように正規化されていました。
10
10
 

2

誤字訂正

2017/06/20 01:20

投稿

otn
otn

スコア84421

test CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  その通り、歴史的理由です。
6
6
 
7
- C言語がUnix上で発展してきた事はご存じでしょうが、Unixは今は無きDEC(COMPAQが吸収合併さらにHPと合併)のPDP-11とうコンピューター(ミニコン)上で誕生しました。
7
+ C言語がUnix上で発展してきた事はご存じでしょうが、Unixは今は無きDEC(COMPAQが吸収合併さらにHPと合併)のPDP-11とうコンピューター(ミニコン)上で誕生しました。
8
8
 
9
9
  PDP-11や後継のVAX-11が使っていた浮動小数点は、仮数部が0.5以上1未満になるように正規化されていました。
10
10
 

1

訂正

2017/06/20 00:41

投稿

otn
otn

スコア84421

test CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  その通り、歴史的理由です。
6
6
 
7
- C言語がUnix上で発展してきた事はご存じでしょうが、Unixは今は無きDEC(HPが吸収合併)のPDP-11とうコンピューター(ミニコン)上で誕生しました。
7
+ C言語がUnix上で発展してきた事はご存じでしょうが、Unixは今は無きDEC(COMPAQが吸収合併さらにHPと合併)のPDP-11とうコンピューター(ミニコン)上で誕生しました。
8
8
 
9
9
  PDP-11や後継のVAX-11が使っていた浮動小数点は、仮数部が0.5以上1未満になるように正規化されていました。
10
10