Задача за побитови операции
Здравейте! Искам да попитам дали е възможно от двоичното представяне на 23, което се представя като 10111 в двоична бройна система с 101 (5 в десетична бройна система) да получа числото 10101? С побитово & което и да е число се получава пак 5. Въпроса ми е как да премахме нулите отпред, които само запълват даеното число.
Може би аз не съм обяснила точно какъв е проблема. Взимам произволно число от тип unsigned long и когато му приложа побитово & с другото число, което трябва да си състои от редуващи се 0 и 1 в двоичен запис (1010, 101, 10101, 101010, 1010101) винаги получавам второто число. Например:
10111 100111100 10101111
& & &
00101 000101000 00001010
00101 000101000 00001010
Тоест заради нулите отпред на втотото число, старшите битове на първото се зануляват и в крайна сметка пак получавам второто число. Как да направя така че нулите отпред да не включват?
Надявам се този път да съм разбрана.
Да видим така дали ще го разбереш:
10111 & 00101 = 23 * 5 = 115
=
10111 = 10111 & 1
+
00000 = 10111 & 0
+
10111 = 10111 & 1
= 1110011 = 115
А, ясно, разбрахме се :)