2011-02-02 55 views
6

私の同僚とベットを解決するために、VB6が未署名のデータ型をネイティブにサポートしているかどうかを調べたいと思います。VB6は符号なしのデータ型をサポートしていますか?

私は答えが「いいえ」と信じていますが、それを確認する正式な文書は見つけられないようです。マイクロソフトの文書への簡単なリンクが受け入れられる答えです。そのようなタイプがなぜサポートされないのかについての歴史的な正当性は、追加のボーナスになります。

+1

は、私はあなたのCOM相互運用を行うときにVBAがそれをサポートしていないことを知っている:unsigned型は、OLEタイプの一部ではありません。私はVB6のためによく分からない。 –

+3

他のほとんどの言語でサポートされていないのと同じ理由で、VBでは符号なしの数値がサポートされていないと思われます。オートメーションで – Gabe

+0

ザ・サポートされる唯一の符号なし整数は、私はすでにまったく同じスレッドを発見したが、私は本当にunsigned型がサポートされていない理由を述べているMicrosoftの公式ドキュメントを参照してくださいしたいと思いバイト(unsigned char型) – wqw

答えて

9

クリスが言ったように、これらはデータ型のリストに見られるように、符号なしとしてのみ使用可能ですByteデータ型を除き、サポートされていない:Data Type Summary

このページにはVBAが記載されていますが、Visual Studio 6.0もサポートされており、サポートされるデータ型は同じです。

私はあなたがそれは通常約間違った方法だから、それはおそらく、なぜ私たちはこれをサポートしてはならない」の場合ではなかったという点で、彼らは符号なしのデータ型を追加しなかった理由を言って公式ドキュメントを見つけるとは思いません"これを追加するには余計な努力をする価値があるだろう"

MarkJが指摘しているByteデータ型を除いて編集されています。

+0

私は、プログラミング言語の歴史についてほとんど無知だとして、私はVBのためのデータ型はCのものをにおよそ基づいていた。しかし、私はちょうどウィキペディア上で見られるような、VBはCの前に開発されたBASIC、に基づいていることを前提と(どちらも60年代だが)。 – Fueled

+0

まあ、VBは "Visual Basic"の略ですが、しばしば完全な名前が書かれているので、あなたがそれを使っていないと、あなたはそれを見ていないかもしれません。 –

+2

右ページへのリンクは+1です。しかし、そのページを注意深く読めば、VB6は** 1 ** unsignedデータ型をサポートしていることがわかります。ByteはCのcharのような符号なしの1バイト整数です。 VB6には、それぞれ2バイト、4バイトおよび(スケーリングされた)8バイト整数の符号付きの「整数」、「ロング」および「通貨」もあります。 – MarkJ

1

VB6ではサポートされていません。この説明はVB2000のlinkで説明されています。

+0

興味深いことに、これらの署名されていない型は、VS 2005で初めて導入されたことを示しています。つまり、VB.NETの最初のバージョンでは使用できませんでした。 – Fueled

2

符号なし整数型のみがバイトです。

0

符号ビットが値の一部でない限り、符号なしとして格納されるLong型に16進値を渡すオプションがあります。たとえば、

&HFFFF = -1 

but &HFFFF& = 65535 

これらの16ビット値は、32ビットのLong型に渡されます。サインビットは変更されません。しかし、32ビットが必要な場合は、Double型を使用するという提案がありました。

一般的に符号なしタイプの必要性に関して、Unsigned Longは32ビットバイナリになりますが、8ビットのみであるByteと比較します。 :)シリアルポート経由で24ビットレジスタを書き込もうと思っています。:)私の考えは、VBAでは符号ビットがビットロジックのような形をしています。

いずれにしても、 。

歓声、

ノーウッド、MA

関連する問題