【初级】C语言 | 您所在的位置:网站首页 › c语言的运算符号顺序是什么 › 【初级】C语言 |
1.操作符分类 算术操作符 移位操作符 位操作符 赋值操作符 单目操作符 关系操作符 逻辑操作符 条件操作符 逗号表达式 下标引用、函数调用和结构成员 2.算术操作符+ - * / % / 操作符:整型的除法 1/2 -->0 浮点型的除法 1.0/2 1/2.0--->0.5 %操作符:取模操作符两端必须是整数 3.移位操作符移位操作符移动的是二进制位。 > 右移操作符 注:移位操作符的操作数只能是整数 整数的二进制表示有三种 源码, 反码, 补码 正的整数的源码,反码,补码相同。 负的整数的源码,反码,补码是要计算的。 最高位0表示正数,1表示负数 整数在内存中存储的是补码。 左移操作符有乘二的效果。 左移右移只针对整数,不支持浮点数。 右移操作符: (1)算术移位:右边丢弃,左边补原符号位 (2)逻辑移位:右边丢弃,左边补0 对于移位运算符,不要移动负数位。这个是标准未定义的。 4.位操作符& // 按位与 | // 按位或 ^ // 按位异或 注:他们的操作数必须是整数。 // & - 按(2进制)位与:有0都为0,都是1按位与后才是1 // | - 按(2进制)位或:只要有1就是1,都为0按位或后才是0 // ^ - 按(2进制)位异或 - 相同为0,相异以1 按位与: 按位或: 按位异或: 按位异或举例: //不能创建临时变量(第三个变量),实现两个数的交换。 //3^3 = 0 -> a^a=0 //011 //011 //000 //0^5=5 -> 0^a = a //000 //101 //101 //3^3^5 = 5 //3^5^3 = 5 //异或操作符支持交换律 //011 //101 //110 //011 //101 //只适用于整型,有局限性,可读性不高 //int main() //{ // int a = 3; // int b = 5; // // printf("交换前:a=%d b=%d\n", a, b); // a = a ^ b;//a=3^5 // b = a ^ b;//3^5^5 --> b=3 // a = a ^ b;//3^5^3 --> a=5 // // printf("交换后:a=%d b=%d\n", a, b); // // return 0; //} // //int main() //{ // int a = 3; // int b = 5; // //这种方法会有溢出的问题 // printf("交换前:a=%d b=%d\n", a, b); // a = a + b; // b = a - b; // a = a - b; // printf("交换后:a=%d b=%d\n", a, b); // // return 0; //} //int main() //{ // int a = 3; // int b = 5; // int c = 0;//空瓶 // // printf("交换前:a=%d b=%d\n", a, b); // c = a; // a = b; // b = c; // printf("交换后:a=%d b=%d\n", a, b); // // return 0; //} 5.赋值操作符复合赋值符 += -= *= /= %= >>= = |
CopyRight 2018-2019 实验室设备网 版权所有 |