Nee*_*asu 1 c math coding-style xor
我要比较4个变量,a,b,c,d
如果它们中的任何一个-1
返回false
.这可能是多么简洁?可能是一些数学运算可以做!! 我不喜欢为这个简单的事情浪费这么多的字符或线条.
ken*_*ytm 10
一般:
return a!=-1 && b!=-1 && c!=-1 && d!=-1;
Run Code Online (Sandbox Code Playgroud)
由于~(-1) == 0
在2的补码机中,并且0
是假值,我们可以将上述减少到
return ~a && ~b && ~c && ~d;
Run Code Online (Sandbox Code Playgroud)
或者,不依赖于2的补码:
return a+1 && b+1 && c+1 && d+1;
Run Code Online (Sandbox Code Playgroud)
但它在溢出时有未定义的行为.
(但请用正常方式.你可能会忘记这个聪明的黑客多年后所做的事情.)
归档时间: |
|
查看次数: |
288 次 |
最近记录: |