2015-04-26 3 views
-3

Мне нужен очень короткий способ извлечь последние 4 цифры шестнадцатеричного числа. Таким образом, вход 0x2479c должен выдавать выходной сигнал 0x479c. Я хочу избежать преобразования и преобразования в двоичный файл.Как получить последние n цифр шестнадцатеричного числа?

Раздел Modulo, который обычно работает для десятичных чисел, в этом случае не работает.

0x2479c modulo 0xffff = 0x479e 

, что является неправильным. Я пытаюсь достичь этого - c/C++.

+0

если вы делаете по модулю десятичные числа, вы не делите на 9, не так ли? '0x2479c mod 0x10000 = 0x479c'. –

+2

Похоже, вы смешали побитовое «и» и ваше по модулю. – harold

+4

Я голосую, чтобы закрыть этот вопрос как не по теме, потому что речь идет о математике начальной школы. –

ответ

5

Вы должны использовать маску, а затем байт мудрый и другие значения. В вашем случае:

0x2479c & 0x0ffff 
+2

's/should/can/g'. Одинаково хорошо работает модульное деление на '0x10000'. –

+0

@CaptainObvlious да, спасибо, вы отредактировали! – Cedric

2

Либо использовать маску

0x2479c & 0x0ffff 

или оператор по модулю

0x2479c % (0x10000); 

Вы были покинуть один в операнде по модулю.

 Смежные вопросы

  • Нет связанных вопросов^_^