[HOMEWORK] Operators Expressions And Statements: Problem 15 - Bits Exchange - Explained

Здравейте, колеги!

Това, честно казано, до момента ми беше една от най-неприятните и най-объркващи задачи. Доста решения видях и доста от тях бяха написани с до десетина реда код, в което няма нищо лошо разбира се.

Моят проблем беше, че ми беше доста трудно да следя логиката на задачата в едно решение, където повечето от нещата се случват на един ред и предполагам, че не съм единствен.

Опитах се да докарам решение, в което съм обяснил всичко, стъпка по стъпка и със съответната битова репрезентация.

Моля да го прегледате за всеки случай, смятам че е верно / предполагам, че променливите може да са малко объркващи първоначално, но ми беше малко трудно да измислям нови имена за почти едно и също / и в конзолата трябва да е достатъчно ясно, за да се проследи постъпково изпълнението на програмата.

Дано да съм бил полезен на някой, на който побитовите операции са също толкова любими, колкото и на мен :)

Ето кода:

http://pastebin.com/5rS52Rte

EDIT: може ли да знам, защо е минуса? В смисъл не сме в детската градина, нямам нищо против отрицателна оценка, но кажете защо. Ако е грешно, дайте насоки да коригирам, или просто кажете "не ми харесва". Така просто хвърлен един минус е тъпичко. Ако има грешка или имате някакъв отрицателен коментар, просто го напишете, отделил съм достатъчно време на този код, с идеята да помогна на някой, така че моля за насоки :)