タイトル | : Re: DWORDの変換に関して |
記事No | : 12462 |
投稿日 | : 2008/06/07(Sat) 23:19 |
投稿者 | : 魔界の仮面弁士 |
> Longの上限値=2,147,483,647を超えた場合どうなってくるんでしょうか? > ビットで考えると補数に・・・マイナスになるんでしょうか? その通り、負数になります(16bit整数の場合も同様です)。
&H7FFFFFFE (+2,147,483,646) の次の値は、 &H7FFFFFFF (+2,147,483,647) になり、さらに次は &H80000000 (-2,147,483,648) になり、さらに次は &H80000001 (-2,147,483,647) になる…といった感じです。
> 具体的にコードにするなら、取得値がマイナスの場合 (単純に考えるなら)2^32加算する必要がありますよね 負数では都合が悪い物(たとえば、ファイルサイズなど)であれば、unsigned 化の 必要がありますが、値そのものには意味が無い場合(ウィンドウ ハンドルなど)には、 その必要は無い(むしろ加算すべきでは無い)でしょうね。
> (その場合 Doubleで受けないといけませんが) 変数のサイズが異なるので、Declare 側は変更してはいけません。 それを標準モジュール等でカプセル化する際には、別のデータ型で表現すると 良いとは思いますが、それには Double よりも、Currency の方が適しているでしょう。
|