Java IXOR ~【一面】相等重构问题

发布于 2024-11-24 10:23:50 字数 656 浏览 7 评论 0原文

public byte[] method(int var1)
{
        if(var1 == ~L.length) //<- this
            return a(i1, 0, false);
}

我将如何继续修复

if(var1 == ~L.length)

以删除 ~

必须将 == 更改为 !=

if(var1 != L.length)

谢谢,这可能是此类的最后一个问题。

附:> 感谢您帮助我解决之前的问题,例如

~(-1 + var1) ~(-1 + var1) ~(-1 + var1) < -1 到 var1 > 1

~(var1 & 0x22) != -1(var1 & 0x22) != 0

~var1 ~var2var1> var2

public byte[] method(int var1)
{
        if(var1 == ~L.length) //<- this
            return a(i1, 0, false);
}

how would I go upon fixing

if(var1 == ~L.length)

to remove the ~

must I change == to != ?

if(var1 != L.length)

Thanks this is probably the last question of this type.

ps.>
Thanks for helping me out with the previous ones like

~(-1 + var1) < -1 to var1 > 1

~(var1 & 0x22) != -1 to (var1 & 0x22) != 0

~var1 < ~var2 to var1 > var2

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

べ映画 2024-12-01 10:23:50

正如我之前告诉过你的,你可以将 ~x 替换为 -x - 1

所以, if(var1 == ~L.length) 是相当于 if(var1 == -L.length - 1)

As I told you before, you can replace ~x with -x - 1

So, if(var1 == ~L.length) is equivalent to if(var1 == -L.length - 1)

dawn曙光 2024-12-01 10:23:50

如果它再次尝试执行 2 的补码技巧:

-var1 == L.length + 1

var1 + 1 == -L.length

(基本上使用 ~x == -(x+1) == -x - 1 的事实)

另一种重写方法是:

var1 ^ L.length == -1

If it's trying to do 2's complement tricks again:

-var1 == L.length + 1

or

var1 + 1 == -L.length

(Basically use the fact that ~x == -(x+1) == -x - 1)

Another way to rewrite it is:

var1 ^ L.length == -1
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文