@VanGo, см. Для выполнения операции над битами, вы должны сначала изучить побитовый оператор.
Я объясняю вашу проблему здесь.
11101111 (находится в двоичной форме) и эквивалентно 239 (в десятичной форме). Теперь вам нужно добавить 1110 в 1111. Чтобы получить эти две пары из 4 бит от 11101111, вам необходимо выполнить побитовое управление на 11101111.
Чтобы получить более высокий 4 бит, сдвиг 11101111 четыре раза слева направо ,
* адрес >> 4: - равно * адрес/16
внутренне компилятор новообращенный * адрес >> 4 в (* адрес)/(2 ПР 4).
Чтобы получить более низкие 4 бита, выполните (* адрес) & 0x0f или (* адрес)% 16. Обе операции очистят все биты, кроме более низких 4 бит.
printf(".....%d\n",(((*address)>>4) + ((*address)&0x0f)));
надеюсь, что это вам поможет.
2^4 = 16 - деление на 16 эквивалентно смещению последних четырех бит. – nneonneo
Вычислить бинарные результаты * a/16 и * a% 16. –
Вы должны узнать немного больше о двоичных и числовых основаниях вообще –