[22]A co když budete potřebovat ještě větší čísla?
Jinak +1 pro řešení v [16]/[21]. Stačí vymaskovat poslední bit a spočítat ho zvlášť. Výsledek je 100% správně a určitě rychlejší než postup v blogu. Protože:
1) Pokud to má být přenositelné, tak se nemůžu spoléhat, že ALU používá dvojkový doplněk.
2) Každý skok a tudíž každý if je výkonostní průšvih.
3) Pokud to uděláte jako makro/inline funkci tak ve výsledku tam bude kupa převážně bezkolizních bitových operací za sebou bez jediného skoku. Superskalární procesor vás za to bude milovat.
Internet Info Root.cz (www.root.cz)
Informace nejen ze světa Linuxu. ISSN 1212-8309
Copyright © 1998 – 2021 Internet Info, s.r.o. Všechna práva vyhrazena.