浮動小数点数版でのビット演算No.00407
Iranoan さん 07/02/12 18:59
 
 秀丸担当さん今日は、Iranoan です。
 浮動小数点数版で
#op = searchoption|0xFFFFFFFFFFFFFFFF;
message hex( #op&0xFFFFFFFFFF80FFFF);
を実行すると、setfloatmode 文に関わらず 0 になります。ビット演算は何
ビットまで保障されているのでしょうか?
 通常版では問題ありませんでした。
 こちらの環境は、WindowsXP+IE6.0+秀丸 Ver.6.50β20 です。

[ ]
RE:00407 浮動小数点数版でのビット演算No.00415
秀丸担当 さん 07/02/13 14:24
 

> 浮動小数点数版で
>#op = searchoption|0xFFFFFFFFFFFFFFFF;
>message hex( #op&0xFFFFFFFFFF80FFFF);
>を実行すると、setfloatmode 文に関わらず 0 になります。ビット演算は何
>ビットまで保障されているのでしょうか?
> 通常版では問題ありませんでした。

通常版は、32ビットまでです。0xFFFFFFFFまでになります。
浮動小数点数版は、仮数部52ビットなので、0xFFFFFFFFFFFFFまでということに
なりますが、setfloatmode 0;で動作が違うのはよくないので、なるべく同じ動
作になるように、0xXXXXという書き方で32ビットよりも多く書いた場合は上位を
切り捨てるようにしようと思います。

[ ]
RE:00415 浮動小数点数版でのビット演算No.00420
Iranoan さん 07/02/13 16:41
 
 秀丸担当さん今日は、Iranoan です。
> 通常版は、32ビットまでです。0xFFFFFFFFまでになります。
> 浮動小数点数版は、仮数部52ビットなので、0xFFFFFFFFFFFFFまでということに
> なります
 ご説明有り難うございます。
> setfloatmode 0;で動作が違うのはよくないので、なるべく同じ動
> 作になるように、0xXXXXという書き方で32ビットよりも多く書いた場合は上位を
> 切り捨てるようにしようと思います。
 よろしくお願いします。
 一つ気になったのは、現在それぞれ 32, 52 ビットで切り捨てられている
か?、ということです。浮動小数点数版で 52 ビットで切り捨てられているな
ら、報告した問題はそもそも現れないはずなので。

[ ]
RE:00420 浮動小数点数版でのビット演算No.00427
秀丸担当 さん 07/02/14 09:24
 

> 一つ気になったのは、現在それぞれ 32, 52 ビットで切り捨てられている
>か?、ということです。浮動小数点数版で 52 ビットで切り捨てられているな
>ら、報告した問題はそもそも現れないはずなので。

通常版では32ビットで切り捨てだったようです。
従来の浮動小数点数バージョンにおいては、正確に切り捨てではなくよくわから
ない挙動のようで、この互換性を維持するほどでもないと思います。

[ ]
RE:00427 浮動小数点数版でのビット演算No.00434
Iranoan さん 07/02/14 14:31
 
 秀丸担当さん今日は、Iranoan です。
> 従来の浮動小数点数バージョンにおいては、正確に切り捨てではなくよくわから
> ない挙動のようで、この互換性を維持するほどでもないと思います。
 これはその通りだと思います。実際に心配だったのは、
> 通常版では32ビットで切り捨てだったようです。
の方なので。

[ ]