检查最高位是否为1的一个技巧

Posted onetrainee

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了检查最高位是否为1的一个技巧相关的知识,希望对你有一定的参考价值。

检查最高位是否为1的一个技巧

很多flags有不同位,对于最高位的检验,我们一般思维是 and 一个数值然后判断是否为零,或者右移判断为零

但发现了一种更好的检测方法 js 来判断,如果最高位为1,则test后 eflags中的 s位为1,其表示负数。

因此,我们可以使用 test eax,eax js xxx(如果成立) 这种方法

这种本质上就是将该数当做一个有符号数,然后判断其是否小于0,也就是最高位是否为1

以上是关于检查最高位是否为1的一个技巧的主要内容,如果未能解决你的问题,请参考以下文章

二进制运算技巧

二进制运算技巧

是否有一个签名值的技术术语,其中只设置了最高位?

二进制处理技巧

在 C/C++ 中检查最低有效位 (LSB) 和最高有效位 (MSB) 的值

位运算技巧