~操作员如何在c中工作?
任何人都可以解释以下代码?
main()
{
printf("%d",~5);
}
Run Code Online (Sandbox Code Playgroud)
输出是 -6
5(可能)是一个带位表示的32位有符号整数0x00000005,或二进制:
0b00000000000000000000000000001010
Run Code Online (Sandbox Code Playgroud)
~5是按位不是5,这将是0xFFFFFFFA或二进制文件:
0b11111111111111111111111111110101
Run Code Online (Sandbox Code Playgroud)
使用两个补码,即-6.