~0x00 如何返回-1?

use*_*795 0 c binary bitmask bit

据我所知,~0x00 等于:第一步,将 0 更改为 1,将 1 更改为 0,第二步,添加 1 步骤 1:11111111111111111111(计数 =32)

第二步:11111111111111111111111111111+1=0

我哪里做错了?

dbu*_*ush 5

~经营者不执行2的补码。您可以使用一元运算-符做到这一点(假设您的机器使用 2 的补码表示)。

什么~是反转所有位。这就是它所做的一切,不加1。

  • @user238795 这是正确的,因为 `~` 只反转位,并且所有位均为 1 的有符号整数的值为 -1。 (3认同)