C语言操作符总结-创新互联

目录
  • 1.算术操作符
  • 2.移位操作符
    • 2.1左移操作符
    • 2.2右移操作符
  • 3.位操作符
  • 4.赋值操作符
  • 5.单目操作符
    • 5.1单目操作符介绍
    • 5.2sizeof和数组
  • 6.关系操作符
  • 7.逻辑操作符

公司主营业务:网站建设、成都做网站、移动网站开发等业务。帮助企业客户真正实现互联网宣传,提高企业的竞争能力。创新互联是一支青春激扬、勤奋敬业、活力青春激扬、勤奋敬业、活力澎湃、和谐高效的团队。公司秉承以“开放、自由、严谨、自律”为核心的企业文化,感谢他们对我们的高要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。创新互联推出新安免费做网站回馈大家。1.算术操作符

符号:+  -  *  / %
注释:
  + :用于整数和浮点数的加法
  - :用于整数和浮点数的减法
  * :用于整数和浮点数的乘法
  / :用于整数和浮点数的除法
  % :用于两整数相处取余数
注意:
  1.除了%操作符之外,其他的几个操作符可以用于整数和浮点数。
  2.对于/操作符如果两个操作符都为整数,执行整数除法,而只要有浮点数执行的就是浮点数除法。
  3.%操作符的两个操作数必须是整数,返回的是整除后的余数。

2.移位操作符

符号:<<  >>
注释:
  << :左移位操作符
  >>:右移位操作符
注意:移位操作符的操作数只能是整数

2.1左移操作符

移位规则:
    左边抛弃,右边补0,相当于*2
在这里插入图片描述

2.2右移操作符

移位规则:
    右移操作符分两种:
        1.逻辑移位
          左边用0填充,右边丢弃
        1.算术移位
          左边用原该值的符号位补充(第一位0表示正数,1表示负数),右边丢弃,编译器中通常是算术移位,有除以2的效果
补充:数据的存储
数据在内存中是以2进制的形式储存的,对于整数而言,整数的二进制有3种表示形式:原码,反码,补码。
  正整数:原码,反码,补码相同
  负整数:原码,反码,补码不同,要进行计算。负整数在内存中存储的是二进制的补码,打印的是这个数的原码。
1.按照数值直接写出的是二进制的原码
2.原码的符号位不变,其他位按位取反,就得到了反码
3.反码+1就是补码
例:-10的原码:1000 0000 0000 0000 0000 0000 0000 1010
        1111 1111 1111 1111 1111 1111 1111 0101–>-10的反码(符号位不变,其余位全部按位取反)
        1111 1111 1111 1111 1111 1111 1111 0110–>补码(反码+1就是补码)
在这里插入图片描述

3.位操作符

符号:&  |   ^
注释:
  & :按位与 :二进制位与二进制位 (有一个为假,则为假)
  | :按位或:二进制位与二进制位 (有一个为真,则为真)
  ^ :按位异或:对应的二进制位相同,则为0 。对应的二进制位相异,则为1。
注:他们的操作必须是整数
例1:
在这里插入图片描述
注:num1:0000 0000 0000 0000 0000 0000 0000 0010
 num2:0000 0000 0000 0000 0000 0000 0000 0001
 num1 & num2:0000 0000 0000 0000 0000 0000 0000 0000—>十进制表示:0
 num1 | num2:0000 0000 0000 0000 0000 0000 0000 0011—>十进制表示:3
 num1 ^ num2:0000 0000 0000 0000 0000 0000 0000 0011—>十进制表示:3(相同为0,相异为1)
例2:
在这里插入图片描述
注:num1 的原码:1000 0000 0000 0000 0000 0000 0000 0011
  num1的反码:1111 1111 1111 1111 1111 1111 1111 1100
  num1的补码:1111 1111 1111 1111 1111 1111 1111 1101
  num2的原码:1000 0000 0000 0000 0000 0000 0000 0001
  num2的反码:1111 1111 1111 1111 1111 1111 1111 1110
  num2的补码:1111 1111 1111 1111 1111 1111 1111 1111
num1 & num2(补码):1111 1111 1111 1111 1111 1111 1111 1101
num1 & num2(反码):1111 1111 1111 1111 1111 1111 1111 1100
num1 & num2(原码):1000 0000 0000 0000 0000 0000 0000 0011—>十进制表示:-3

4.赋值操作符

符号:简单赋值符: = 
  复合赋值符:+=  -=  *= /=   %=  >>=  <<=   &=   |=  ^=

int a = 1;
	a = 2;//简单赋值操作
double b = 3.0;
	b = 10.0 //简单赋值
int a = 5;
	a = a + 5;
	a += 5;//复合赋值符
int b = 3;
	b = b - 1;
	b -= 1//复合赋值符
5.单目操作符 5.1单目操作符介绍

符号:
   ! --------逻辑取反
   -   --------负值
   +  --------正值
   &  --------取地址
   sizeof --------操作数的类型长度
   ~ --------对一个二进制按位取反
   - -  --------前置,后置- -
   ++  --------前置,后置++
   *  --------解引用操作符
  &(取地址):

int a = 1;
int *pa = &a;//将变量a的地址保存在变量pa中,
			//pa指向a,此时pa是一个指针变量

   - -(前置,后置),++(前置,后置):

int a = 1;
int b = a++ // a = 2; b = 1 后置++:先使用,后++
int d = 2
int c = ++d// d = 3;c = 3 前置++:先++,后使用

  *(解引用):

在这里插入图片描述

5.2sizeof和数组

  sizeof(求操作数类型长度):

int a = 1;
printf("%d\n",sizeof(a));//result:4(字节)
printf("%d\n",sizeof(int));//result:4(字节)
printf("%d\n",sizeof a);//result:4(字节)
printf("%d\n",sizeof int);//错误:求类型的长度不能去掉括号

sizeof:求变量(类型)所占空间的大小
在这里插入图片描述

6.关系操作符

符号:>  >= < <=   !=   ==
注意:1.编写程序代码时一定要注意 = 和== 的区别,不要写错,= 是赋值操作,而 == 才是判断
  2.判断字符串是否相同时,应该用strcmp()函数,而不能用==比较

7.逻辑操作符

符号:&& ||
  && ------------逻辑与操作(只要有一个表达式为假便为假,不再执行后面的表达式)
  | | ------------逻辑或操作(只要有一个表达式为真便为真,不再执行后面的表达式)
区分逻辑与和按位与
区分逻辑或和按位或

1 && 2 = 1;//逻辑与,两个全真结果才为真
1 & 2 = 0;//按位与(按二进制计算)

1 || 2 = 1;//逻辑或,只要有一个为真便为真
1 | 2 = 3;//按位或(按二进制计算)

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


网站题目:C语言操作符总结-创新互联
文章网址:http://scyanting.com/article/diijse.html