相关疑难解决方法(0)

按位非运算符返回意外和负值?

我正在尝试使用 Bitwise NOT 获取整数的值,但没有得到我期望的值。

#include <stdio.h>

int main(){
    int i = 16;
    int j = ~i;
    printf("%d", j);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

16 不应该是:

00000000000000000000000000010000
Run Code Online (Sandbox Code Playgroud)

所以 ~16 应该是:

11111111111111111111111111101111
Run Code Online (Sandbox Code Playgroud)

为什么我没有得到我期望的结果,为什么结果是负面的?

这就是我想要做的:

我有一个例如 27 的数字,它是:

00000000000000000000000000011011
Run Code Online (Sandbox Code Playgroud)

并且想要检查每一位是 1 还是 0。

所以我需要得到这个值

11111111111111111111111111110111
Run Code Online (Sandbox Code Playgroud)

使用第二个来检查第一个的第 3 位是否设置为 1。

c c++ binary bit-manipulation

1
推荐指数
1
解决办法
1423
查看次数

标签 统计

binary ×1

bit-manipulation ×1

c ×1

c++ ×1