wang2222 2010-02-01 09:43 采纳率: 100%
浏览 171
已采纳

-2 和 2*(-1)区别

int s = 2;
int h = -s和
int h = s*(-1)有什么区别
int h = -s这个是不是错误的??

  • 写回答

3条回答 默认 最新

  • 拽拽的初行者 2010-02-01 11:40
    关注

    [code="java"]int h = -s[/code]

    没有错误。

    区别如下:

    [code="java"]int h = -s [/code]

    [quote][b] 11: getfield #2; //Field s:I
    14: ineg
    15: putfield #3; //Field h:I[/b][/quote]

    [color=blue][b]只用了 一个取负的操作[/b][/color]

    [quote]int k = s * (-1)[/quote]

    [quote][b] 20: getfield #2; //Field s:I
    23: iconst_m1
    24: imul
    25: putfield #4; //Field k:I[/b][/quote]

    [color=blue][b]多了一条指令,用到了乘法操作![/b][/color]

    [color=blue][b]所以 int h = -s 比较好![/b][/color]

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?