- PR -

BitConverterのToInt16メソッドについて

1
投稿者投稿内容
きゃる
会議室デビュー日: 2006/04/06
投稿数: 11
投稿日時: 2006-04-06 21:34

下記コードでstが&H9911となることを期待していましたが、
デバッグでst変数を覗くと-26351となってたので16進に直すと、
FFFFFFFFFF9911となり、さらに10進に直すともちろん-26351となりません。



 Dim st As Short = 0
Dim wbyte(3) As Byte

wbyte(0) = &H11
wbyte(1) = &H99
wbyte(2) = &H55
wbyte(3) = &H22

st = BitConverter.ToInt16(wbyte, 0)

原因をご教授ください。
お願いします。
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2006-04-06 21:58
Short だから。
符号付きだから。
http://blogs.wankuma.com/jitta/archive/2005/11/22/19516.aspx
最大値に注意。
9911(16) は、 39185(10)
Short の最大値を超えている。
きゃる
会議室デビュー日: 2006/04/06
投稿数: 11
投稿日時: 2006-04-07 09:28
Jittaさん回答ありがとうございました。
非常に助かりました、感謝です。
1

スキルアップ/キャリアアップ(JOB@IT)