2011-12-28 20 views

Respuesta

11

num *= -1 cambiará el signo de positivo a negativo y viceversa.

+1

Cambiar el letrero se hace mucho más idiomáticamente con el operador '-'. Esto es fundamentalmente una operación aditiva en lugar de multiplicativa. –

11

yo preferiría escribir así:

num = -num; 

Esto no necesitarán una multiplicación, simplemente cambiando el signo.

+0

Incluso puedes evitar la resta usando 'num = (- 1^num) ++;'. Por supuesto, solo para enteros. – Gabriel

+1

La optimización de compiladores no usaría la multiplicación o incluso una asignación en cualquier caso: incluso si escribe 'num = -1 * num', los compiladores modernos optimizarían la multiplicación, y usarían la instrucción' NEG $ num' para negar el número en lugar. – dasblinkenlight

+0

cambiar el signo es mejor que usar la multiplicación, ya que de hecho multiplicará el número y, por supuesto, el efecto cambiará el signo, pero en el número multiplicado. –

Cuestiones relacionadas