Как да разбереме побитовите операции?
Здравейте,
от опеделено време насам се ровя в интернет пространството за теми, които касаят побитовите операции. Наистина попаднах на доста интересни теми, които показват всеки един оператор какво действие извършва, тяхното прилагане в компютрите и т.н.
Предполагам, че всеки човек знае смисъла от десетичните уравненията (20 - 5 = 15; 20 + 5 = 25; 20 / 5 = 4; 20 * 5 = 100; -5 + 20 = 15 и т.н.), защото прави аналогия с дадени предмети ( като 20 ябълки минус 5 ябълки е равно на 15 ябълки) и знае какво е значението за прилагането на такъв тип математически действия. Ако използвам същите числа в бинарен вариант с операторите за бинарно изчисление (0001 0100 (20) & 0000 0101 (5) = 0000 0100 (4); 0001 0100 (20) | 0000 0101 (5) = 0001 0101 (21); 0001 0100 (20) ^ 0000 0101 (5) = 0001 0001 (17); i т.н. с ' ~ ' оператор) идва и моят проблем, с каква цел го правя, какъв е смисъла от прилагането на тези операции и подобни изчисления, какво е значението на получените числа след действията или може ли да си направиме някаква аналогия в ежедневието си за да ги разбереме по - добре?
Надявам се да съм си задал въпроса правилно, пояснявам, че не става въпрос за как се изчисляват побитовите операции, а какво е приложението им и защо са ни нужни тяхните изчисления.
Поздрави,
Да, именно точно това, което казваш е абсолютно правилно и го разбирам. Идеята ми е следната както знам, че с 5 + 5 = 10 и разбирам процеса защо всъщност използвам 5 и 5 с оператора '+' за да получа 10 и предполагам всеки човек го разбира, целта ми е със същото разбиране да постигна при побитовите операции.
Ти примерно как успя да ги разбереш, как да използваш двойчната система, с какво ти помага и т.н.?
Желанието ми е в това, че не искам да назубря побитовите операции и да ги смятам, защото така се смятат, а искам да ги разбера каква е тяхната функционалност. Според мене най - трудно е да правиш нещо, което не разбираш. В случая знам как да работя с операторите на побитовите операции, но не мога да разбера логиката, като правя нещо, но и аз не знам какво.
Поздрави,
Ако толкова държиш да разбереш приложеието им, намери такъв проект :)
По между другото има доста интересни топици по въпроса из интернет, например: http://programmers.stackexchange.com/questions/177685/what-kind-of-specific-projects-can-i-do-to-master-bitwise-operations-in-c-als и http://stackoverflow.com/questions/2096916/real-world-use-cases-of-bitwise-operators