2011-12-28 89 views

Trả lời

11

num *= -1 sẽ thay đổi dấu hiệu từ dương sang âm và ngược lại.

+1

Thay đổi ký hiệu được thực hiện thành công hơn bằng cách sử dụng toán tử '-'. Điều này về cơ bản là một hoạt động phụ gia hơn là một phép nhân. –

11

Tôi thà viết như thế này:

num = -num; 

này sẽ không cần một phép nhân, chỉ cần thay đổi các dấu hiệu.

+0

Bạn thậm chí có thể tránh phép trừ bằng cách sử dụng 'num = (- 1^num) ++;'. Tất nhiên, chỉ cho số nguyên. – Gabriel

+1

Tối ưu hóa các trình biên dịch sẽ không sử dụng phép nhân hoặc thậm chí một phép gán trong cả hai trường hợp: ngay cả khi bạn viết 'num = -1 * num', trình biên dịch hiện đại sẽ tối ưu hóa phép nhân và sử dụng lệnh' NEG $ num' để loại bỏ số địa điểm. – dasblinkenlight

+0

thay đổi ký hiệu là tốt hơn so với sử dụng phép nhân sẽ thực sự nhân số và tất nhiên hiệu ứng sẽ thay đổi dấu, nhưng trên số nhân. –

Các vấn đề liên quan