操作符分类
//算术操作符
double a = 5 / 2.0;//想要有小数就得改变类型
printf("a=%1f\n", a);
int a = 5 / 2;//除法商二余1
printf("a=%d\n", a);
//操作符
int a = -1;
int b = a >> 1;//算术右移
printf(" % d\n", b);
//int a = 16;
//int b = a >> 1;//右移操作符,移动的是二进制
//printf(" % d\n", b);
没变号,因为作为负数二进制开头是1,它是算术右移,移动过去,补足的是原符号
而逻辑右移就会变号,因为逻辑右移补足的是0,
补码,就是补1
反码就是把原来的0换成1,或者1换成0
这里是计算机基础内容
//操作符
int a = -1;
int b = a << 1;//左移
printf(" % d\n", b);
位操作符
与或门
//位操作符 操作只能是整数
int a = 3;
int b = 5;
//011
//101
//001与,中学知识,了,两个同成
int c = a&b;
printf(" % d\n", c);
int a = 3;
int b = 5;
//011
//101
//001或,中学知识,了,两个同为0成0,1个为1为1
int c = a | b;
printf(" % d\n", c);
//位操作符 操作只能是整数
int a = 3;
int b = 5;
//011
//101
//按二进制位异或
//相同为0,相异为1
int c = a ^ b;
printf(" % d\n", c);
一个更有效的统计储存里面1,融合了之前的知识点
赋值
//复合赋值操作符
int a = 10;
a = a + 2;//与 a+=2等效
a+=2
单目操作符
//单目操作符
int a = 10;
int*p=&a;//取地址操作符 和指针关联,p是指针变量
*p = 20;//解引用
////int a = 0;
////printf(" % d\n", !a);//!逻辑反