如題,Dim UBI_A1 As String = CShort("&H" & "E0") '16進制轉10進制
得到是224,但是應該得到-32才是正確結果
請問大神怎么修改得到有符號的整數
uj5u.com熱心網友回復:
VB的單位元組型別宣告只有BYTE,但它是無符號的0~255;其他整數型是2位元組或者更多位元組,&HE0強制轉換成其他整數型都不可能是負數。單位元組整數要想轉換成負數需要做個是否大于&H7F的判斷。
Dim UBI_A1 As Short = CShort("&H" & "E0")
If UBI_A1 > &H7F Then
UBI_A1 = UBI_A1 - &H100
End If
uj5u.com熱心網友回復:
但是2位元組或更多位元組用CShort是可以轉換負數的,就是單位元組不可以
uj5u.com熱心網友回復:
CShort()轉換之后的資料是雙位元組整數,強制轉換單位元組整數單位元組前補&H00,轉換后的數值永遠是正數。
uj5u.com熱心網友回復:
dim a as byte="&H" & "80"dim b as short="&H" & "8000"
dim c as integer="&H" & "80000000"
dim d as uint64="&H" & "8000000000000000"
也許能挑出來個把能行的
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/248337.html
標籤:VB.NET
上一篇:求助大佬,U3D相關
下一篇:哪位大神幫我生成個密碼
