Професионална програма
Loading...
+ Нов въпрос
melda.h avatar melda.h 4 Точки

Задача за побитови операции

Здравейте! Искам да попитам дали е възможно от двоичното представяне на 23, което се представя като 10111 в двоична бройна система с 101 (5 в десетична бройна система) да получа числото 10101? С побитово & което и да е число се получава пак 5. Въпроса ми е как да премахме нулите отпред, които само запълват даеното число.

0
Programming Basics
ad2bg avatar ad2bg 123 Точки

По принцип водещите нули не променят никое число и не е ясно защо ти е необходимо да ги "премахваш". Може би не желаеш някакъв алгоритъм да се изпълнява върху тях?  Обясни крайната си цел. Ако искаш пиши ми ЛС на FB или се обади по скайпа. Що се отнася до посочените числа - не виждам да се връзват по никакъв начин. 

0
melda.h avatar melda.h 4 Точки

Може би аз не съм обяснила точно какъв е проблема. Взимам произволно число от тип unsigned long и когато му приложа побитово & с другото число, което трябва да си състои от редуващи се 0 и 1 в двоичен запис (1010, 101, 10101, 101010, 1010101) винаги получавам второто число. Например:

10111           100111100      10101111
&                  &                     &
00101           000101000     00001010

00101           000101000     00001010
Тоест заради нулите отпред на втотото число, старшите битове на първото се зануляват и в крайна сметка пак получавам второто число. Как да направя така че нулите отпред да не включват?

Надявам се този път да съм разбрана.

0
koksibg avatar koksibg 895 Точки

Да видим така дали ще го разбереш:

    10111 & 00101 = 23 * 5 = 115   

=                               
        10111 = 10111 & 1
+                              
      00000  = 10111 & 0 
+                                  
     10111   = 10111 & 1 

 

=   1110011 = 115
 

0
08/11/2017 13:04:31
ad2bg avatar ad2bg 123 Точки

А, ясно, разбрахме се :)

0