操作符
~ 按(二进制)位取法 把所有二进制位中数字,1变成0,0变成1.
把所有二进制位中数字,1变成0,0变成1
整形变量四个字节 一个字节八个比特位
整数在内存中存储的是补码
一个整数的二进制表示有3种:
原码
反码
补码
整数是正数的情况下第一位的符号位为0
整数是正数的情况下第一位的符号位为1
-1:
10000000000000000000000000000001(这就是-1的原码)
11111111111111111111111111111110(这就是反码)(符号位不变 其他位按位取反)
11111111111111111111111111111111(这就是补码)(内存中存的是补码)(反码二进制序列加1)
上面是负数的计算
正整数
原码、反码、补码相同
int main()
{
int a = 0;
printf("%d\n", ~a);
return 0;
}
int main()
{
int a = 10;
int b = ++a;//前置++,先++,后使用
printf("%d\n", b);//11
printf("%d\n", a);//11
return 0;
}
int main()
{
int a = 10;
int b = a++;//后置++,先使用,后++
printf("%d\n", b);//10
printf("%d\n", a);//11
return 0;
}
int main()
{
int a = (int)3.14;//强制类型转换
printf("%d\n, a);
return 0;
}