#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include <string>
int main(){
//在C中非0为真,0为假
int a = 10;
printf("%d\n", !10);
//"~"把数的二进制按位取反得到0000 1010-->1111 0101,发现这是补码。负数在内存中存的是二进制补码(以1开头的补码),正数存的是原码,但是正数的原、反、补码都一样,所以结论为正数在计算机内存中存的都是补码,打印的是源码。
//a是有符号整型,最高位是符号位(1为正0为负)
printf("%d\n", ~a);
//取反发现1111 0101 以1开头,所以是补码,存储在内存中,如何打印原码?补码-->原码
//先减一得到反码,反码除符号位全部取反得到原码 1111 0101 --> 1111 0100 --> 1000 1011
//计算变量或数据类型所占字节大小,可以计算数组元素个数
printf("%d\n",a);
printf("%d\n", -a<0);
printf("%d\n", sizeof(int));
int b = a++ + 1;
printf("%d\n", a);
int c = ++a + 1;
printf("%d\n", a);
int e;
scanf("%d", &e);
//强制类型转换
double e1 = (double)e;
//逻辑与,2个为真才是真,一个为假就为假
printf("%d\n", 1&&2);
printf("%d\n", 0 && 2);
//逻辑或,只要有一个为真就为真,两个为假才为假
printf("%d\n", 1 || 0);
printf("%d\n", 0 || 0);
//三目运算
printf("%d\n", e == 1 ? 1 : 0);
return 0;
}
第二十九章:单目运算符
最新推荐文章于 2024-06-06 00:11:11 发布