1

我在 excel 中使用 VB 并为 CRC16 位计算创建一个宏。当我从 8000 以上的查找表中取值到 FFFF 时,它们给出的是负数。然后我知道低于此范围的数字将是正数,而此范围内的数字(8000-FFFF)将给出必须转换的负数结果。我遇到了一些这样的功能,但它们并没有解决我的目的

是否可以使用简单的函数进行转换,以便获得正确的结果。

HFFFF 给一个长变量-1,但我想要 65535。

我已经使用了这里给出的函数http://support.microsoft.com/kb/161304但是当我传递像 HFFFF 这样的十六进制值时它没有给我正确的结果。

4

1 回答 1

2

十六进制常量是有符号的。这实际上在 VBA 规范中有所描述:http: //msdn.microsoft.com/en-us/library/ee199514.aspx

有两种方法可以解决这个问题:

1)使用文字小数

2) 使用 &HFFFF& 之类的 & 符号类型提示

于 2013-07-22T04:53:22.387 回答