小编ani*_*ime的帖子

计算机总是遵循2的补码方法来表示负数吗?

请查看以下代码并帮助我理解它

int a=1;
int b=~1;
printf("%d",b);
Run Code Online (Sandbox Code Playgroud)

输出是:

 -2
Run Code Online (Sandbox Code Playgroud)

所以这表示 1=(00000001) 当经历 ~ 时产生 (11111110),它是数字 2 的 2 补码,因此 -2 就是答案。那么 100 总是被假定为 -4 而不是 4 ?

c c++

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

为什么应该在此代码中引入类型促销?

在下面的代码中sizeof(int)会产生signed int与4个字节的值(假设在一个特定的编译器)和-1signed int,则我的答案应该,但它显示没有.

#include <stdio.h>
int main()
{
    if (sizeof(int) > -1)
        printf("Yes");
    else
        printf("No");
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

c

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

标签 统计

c ×2

c++ ×1