Проблемы с конвертацией в VBA Excel- почему HFFF дает -1 долго и как ее решить
Я использую VB в Excel и создаю макрос для расчета бит CRC16. Когда я беру значения из таблицы поиска выше 8000 в FFFF, они дают отрицательные числа. Затем я узнал, что числа ниже этого диапазона будут положительными, а числа в этом диапазоне (8000-FFFF) дадут отрицательный результат, который необходимо преобразовать. Я сталкивался с несколькими подобными функциями, но они не решают мою задачу.
Можно ли сделать преобразование с помощью простой функции, чтобы я мог получить правильный результат.
HFFFF дает -1 для длинной переменной, но я хочу 65535.
Я использовал приведенные здесь функции http://support.microsoft.com/kb/161304 но это не дает мне правильного результата, когда я передаю шестнадцатеричное значение, такое как HFFFF.
1 ответ
Шестнадцатеричные константы подписаны. Это на самом деле описано в спецификации VBA: http://msdn.microsoft.com/en-us/library/ee199514.aspx
Есть два пути решения этой проблемы:
1) использовать буквенное десятичное число
2) используйте подсказку типа амперсанда, например &HFFFF&