2013-07-22 50 views
1

我在excel中使用VB併爲CRC16位計算創建一個宏。當我從8000以上的查找表中獲取值到FFFF時,他們給出負數。然後我知道低於這個範圍的數字是正數,這個範圍內的數字(8000-FFFF)會給出一個必須轉換的負數結果。我遇到了這樣的幾個功能,但他們不解決我的目的轉換問題在VBA Excel中 - 爲什麼HFFF給出了-1以及如何解決它

是否有可能使用一個簡單的函數進行轉換,以便我可以得到正確的結果。

HFFFF給人-1到長變量,但我想65535

我用這裏給出http://support.microsoft.com/kb/161304的功能,但它並沒有給我正確的結果,當我傳似HFFFF十六進制值。

回答

2

十六進制常數是有符號的。這是在VBA規範實際上描述:http://msdn.microsoft.com/en-us/library/ee199514.aspx

有解決這個問題的方法有兩種:

1)使用文字小數

2)使用一個符號式的暗示一樣& HFFFF &

+0

感謝Nirk,我用C打印六角表格的時間很長。我複製這個輸出表,並在vba中使用它。使用這看起來比&HFFFF&更容易。非常感謝 –

相關問題