Witajcie!
Uczę się C++ z nową symfonią i trochę się bawię na różnych głupich przykładach aby zrozumieć to i owo. Teraz robię własny generator liczb losowych budujący wyrazy z pojedynczych bitów :) Naszło mnie jednak pytanie wręcz egzystencjalne i nie mam pojęcia do którego działu je skierować. A pytanie brzmi:
Zakładając że ostatni bit w zmiennej jest zawsze zerem, to jaka jest wtedy różnica pomiędzy zwykłą inkrementacją: ++ a bitową alternatywą: |1 ?
Chodzi mi nie o wynik działania, ale o to jak dokładnie kompilator (oraz ALU procesora) je przeprowadzi. Pytam się czy jest jakaś różnica pomiędzy dodawaniem a inkrementacją? Albo między inkrementacją a opisanym wyżej przypadkiem?
Wiem, że bitor porówna każdą parę bitów i zwróci dodatkowy wyraz. Jak jednak przebiega operacja dodawania? Czy jest bardziej złożona (zasobożerna) od bitowej alternatywy?
Oraz:
Czy inkrementacja to dosłownie suma wyrazu w zmiennej oraz stałej dosłownej reprezentowanej przez pojedynczy bit na końcu? A może owo działanie jest przeprowadzane jakoś bardziej pomysłowo (szybciej)?
Szukałem co nieco... Ale większość opisów mówi tak: "Procesor posiada jednostkę która służy do dodawania". Koniec opisu.
Ktoś ma jakiś ciekawy link lub źródło gdzie owe działania byłyby opisane dokładniej od strony "kuchni"? Byłbym wdzięczny! :)
Pozdrawiam!