2011-12-28 7 views

cevap

11

num *= -1 negatif ve tersi pozitiften işaret değişecektir.

+1

İşaretin değiştirilmesi, '-' işlecini kullanarak daha fazla deyimsel olarak yapılır. Bu, çarpımsal olandan ziyade temel olarak bir ek işlemdir. –

11

Doğrusu böyle yazardı:

num = -num; 

Bu sadece işareti değiştirerek, bir çarpma gerekmez.

+0

'num = (- 1^num) ++;' kullanarak çıkarma işleminden bile kaçınabilirsiniz. Tabii ki, sadece tamsayılar için. – Gabriel

+1

Derleyicileri optimize etmek, her iki durumda da çoğaltma veya atama kullanmaz: "num = -1 * num" yazsanız bile, modern derleyiciler çarpımı en iyi duruma getirir ve sayıyı negatif yapmak için "NEG $ num" komutunu kullanır yer. – dasblinkenlight

+0

işaretinin değiştirilmesi, çarpımın kullanılmasından çok daha iyi olduğu gibi, sayıyı çarpacak ve tabiki efekt, işaretin yerini değiştirecektir. –

İlgili konular