Как да изчисля (ръчно) побитово и и побитово или между две числа в шестнадесетична форма, без да ги преобразувам в двоична на която и да е стъпка?

Да кажем a = 0x6db7 и b = 0x736. Как да изчислим a&b и a|b ръчно?

Наясно съм с побитовите операции и знам, че това може да се реши чрез преобразуване на a и b в тяхната двоична форма и след това побитови операции и след това отново преобразуване в шестнадесетичен, но това, което търся, е решение, което не включва твърде много на изчисление без междинно двоично преобразуване.

Възможно ли е ?


person Quixotic    schedule 05.03.2011    source източник
comment
Това не е ли същото като да кажете Какъв е отговорът на изпитен въпрос номер 8? ;стр   -  person    schedule 05.03.2011
comment
en.wikipedia.org/wiki/Bitwise_operation   -  person 0xAX    schedule 05.03.2011
comment
@Lucifer: Не, това е точно „Как мога да отговоря ефективно на въпрос номер 8?“ Тъй като знам как да направя това по обичайния начин ... конвертиране в двоични и след това стандартни побитови операции.   -  person Quixotic    schedule 05.03.2011
comment
Трябва ли да приемем, че a и b са низове?   -  person dbasnett    schedule 06.03.2011


Отговори (1)


Това са побитово and и побитово or. За да ги изчислите ръчно, преобразувайте всяко число в двоично, след което изчислете резултата. Резултатът от and ще бъде 1, ако и само ако съответните битове са зададени. Резултатът от or ще бъде 1, ако съответните битове в единия или в другия или и в двата са зададени:

 100111      100111
&110010     |110010
-------     -------
 100010      110111

След това обикновено искате да преобразувате резултата обратно в друга база (напр. шестнадесетичен).

person Jerry Coffin    schedule 05.03.2011
comment
Запознат съм с този метод, възможно ли е да се реши без междинното двоично преобразуване? - person Quixotic; 05.03.2011
comment
Възможно, да. Разумно, вероятно не. Очевидната възможност би била да запомните цялата таблица за всичките 16 шестнадесетични цифри. Когато пишех редовно асемблер, почти знаех това, но вече не работя толкова често с такива неща. - person Jerry Coffin; 05.03.2011