Я работаю над специальным шестнадцатеричным редактором, который включает двухбайтовый конвертер указателей Z80.Как преобразовать шестнадцатеричное смещение в двухбайтовый указатель в VB.NET?
Математика за преобразования, как так:
- Возьмите смещение, которое вы хотите указать.
- Возьмите последние четыре цифры смещения и отрежьте остальные.
- Если смещение находится за пределами диапазона
&H4000
-&H7FFF
, оно должно быть преобразовано следующим образом:(offset % &H4000) + &H4000
. Другими словами:- Если смещение от
&H0000
до&H3FFF
, добавьте&H4000
на смещение. - Если смещение от
&H4000
до&H7FFF
, ничего не делайте со смещением. - Если смещение от
&H8000
до&HBFFF
, вычтите&H4000
со смещения. - Если смещение составляет от
&HC000
до&HFFFF
, вычтите&H8000
со смещения.
- Если смещение от
Моя проблема, я не знаю, как я мог бы превратить 5 или 6-значную шестнадцатеричное смещение в смещении двузначного. Как бы я сбрил лишние байты в начале (шаг два)?
На самом деле связано определение MSDN МОД говорит, что удивительно, что это остаток, но не обсуждать отрицательные числа. Хороший момент, чтобы поднять его - хотя ваш ответ, вероятно, лучше подходит для комментариев. –