Prohození hodnot XORem: Porovnání verzí

Smazaný obsah Přidaný obsah
oprava překlepu
m <source> -> <syntaxhighlight> (phab:T237267)
Řádek 51:
=== Varianty ===
Podobný algoritmus lze realizovat pomocí [[sčítání]] a [[odčítání]]:
<sourcesyntaxhighlight lang="c">
void addSwap (unsigned int *x, unsigned int *y)
{
Řádek 60:
}
}
</syntaxhighlight>
</source>
Jeho správnost je ale závislá na tom, že nedojde k [[celočíselné přetečení|celočíselnému přetečení]]. Je-li například práce na celých číslech realizována [[Výpočty s libovolnou přesností|s podporou libovolné přesnosti]] nebo v rámci [[modulární aritmetika|modulární aritmetiky]], algoritmus funguje. Například v rámci [[C (programovací jazyk)|jazyka C]] tento algoritmus funguje, neboť sčítání a odčítání dle standardu odpovídá operacím v [[cyklická grupa|cyklické grupě]] <math>\mathbb Z/2^s\mathbb Z</math>, kde <math>s</math> je počet [[bit]]ů.