Im пытается получить бит 6 - 15 шестнадцатеричного значения в C++. Im использует & 0xFFC0, и когда я печатаю значение этих битов im, получая значения более 1024. Но поскольку его 10 бит самое высокое значение, к которому можно получить доступ, равно 1024, правильно?получение определенных битов из шестнадцатеричного значения
У меня 32 битный адрес, который тег = 31 до 16 индекс = от 15 до 6 смещение = от 5 до 0
мой код выглядит следующим образом
long long offset = address & 0x1F;
long long index = address &0xFFC0;
long long tag = address & 0xFFFF0000;
Кажется, что вам не хватает операций * shift *, чтобы довести это значение до требуемого диапазона. – WhozCraig
'0xFFFF0000' +' 0xFFC0' + '0x1F' =' 0xFFFFFFDF'. Просто подумал, что я бы сказал об этом. –