У меня возникли проблемы с конкатенацией двух шестнадцатеричных значений в C++;Согласование шестнадцатеричных значений в C++
int virtAddr = (machine->mainMemory[ptrPhysicalAddr + 1] << 8) | (machine->mainMemory[ptrPhysicalAddr]);
int physAddr = currentThread->space->GetPhysicalAddress(virtAddr);
Для machine->mainMemory[ptrPhysicalAddr + 1]
, это дает 0x5
. Для machine->mainMemory[ptrPhysicalAddr]
это дает 0x84
. Я ожидаю результат 0x584
. Тем не менее, я получаю 0xffffff84
. Я следовал этому вопросу Concatenate hex numbers in C.
size_t и ptrdiff_t являются типы, которые вы хотите –
Какой тип 'mainMemory'? –
@AlanStokes это массив символов – mrQWERTY