tagCANDY CGI VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板
VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板
[ツリー表示へ]  [ワード検索]  [Home]

タイトル Re: DWORDの変換に関して
投稿日: 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 の方が適しているでしょう。

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。