我偶然发现了关于使用魔数0x07EFEFEFF优化
查看魔术位。第16、24和31位为1。第8位为0。
- 第8位代表第一个字节。如果第一个字节不为零,则此时第8位变为
然而,如果我使用
我错过了什么?
谢谢!
strlen
的这个答案,以下是最佳答案的内容:查看魔术位。第16、24和31位为1。第8位为0。
- 第8位代表第一个字节。如果第一个字节不为零,则此时第8位变为
1
。否则为0
。
- 第16位代表第二个字节。逻辑相同。
- 第24位代表第三个字节。
- 第31位代表第四个字节。然而,如果我使用
a = 0x100
计算result = ((a + magic) ^ ~a) & ~magic
,我发现result = 0x81010100
,这意味着根据最佳答案者的说法,a
的第二个字节等于0,这显然是错误的。我错过了什么?
谢谢!