当前位置:   article > 正文

C语言:操作符&表达式求值_c语言-32&&0怎么算

c语言-32&&0怎么算

对于位操作符都是对整数的补码操作

1.算术操作符

+,-,*,/,%

/取整运算符,只要有一个数是浮点数就执行浮点数计算
%取余运算符,两数必须是整数

取模操作符不能用于double类型

2.移位操作符,整数

<<,>>,作用于一个数的二进制位,必须是整数,移位时是补码进行移位
右移一位等于除2
左移一位等于乘2

向右移位分为算术移位和逻辑移位(取决于编译器)

  • 算术右移:右边丢弃,补符号位(大多数编译器)
  • 逻辑右移:右边丢弃,补0

左移补0,右移补符号位

移正数位如上
移负数位右移-28位,32位平台下,-28+32=4<=>右移四位
移位超过32位左移35位,32位平台下,35%32=3<=>左移三位
左移
int a=3;
//00000000 00000000 00000000 00000011
int b=a<<1;
//00000000 00000000 00000000 00000110
//b=6
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

3.位操作符,整数

一定要是补码进行位运算操作
在这里插入图片描述

int a = 3;//0000 0011
int b = 5;//0000 0101

int c1=a&b//0000 0001,c1=1

int c2=a|b//0000 0111,c2=7

int c3=a^b//0000 0110,c3=6
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

异或:相 异 为 1
应用:不创建临时变量交换两个值

a^a=0

4.赋值操作符 =

下列均是复合操作符
在这里插入图片描述

复合操作符使用方法,其余操作符同理
a += 10;
a = a+10;//用复合操作符可以写成  
  • 1
  • 2
  • 3

左值:一般是一块空间
右值:一般是一个值或者是一块空间的内容

5.单目操作符

  • 单目的意思是只有一个操作数,双目同理,有两个操作数,例:
  • a+b,ab是两个操作数,所以+是双目操作符;
  • ++a,只有a一个操作数,所以++是单目操作符。
-负值
+正值
&取地址
sizeof计算变量所占空间大小,单位字节
~对一个二进制数按位取反
- -前置,后置
++前置(先使用,后++ ),后置++(先++,后使用)
*解引用

printf("%d %d %d\n,i++,++i,i++")函数打印值时,
为了保证值从左往右输出,就要将参数从右往左进行压栈。
在压栈的过程中,计算机会对数据进行计算或处理

取反操作符使用
在这里插入图片描述


sizeof使用
在这里插入图片描述

强制类型转换

括号里放的类型
int n=(int)3.14;

6.关系操作符

=
<
<=
!=
==

7.逻辑操作符

只关注真假

&& ---- 逻辑与,左操作数为假,右边不计算

  • 1&&2=1

|| ------ 逻辑或,左操作数为真,右边不计算

在这里插入图片描述
在这里插入图片描述

8.条件操作符

exp1 ? exp2 : exp3
1为真,则表达式结果2,否则表达式结果是3

等价于a > b ? a : b
a>b是否成立?成立值是a,不成立值是b

9.逗号表达式

exp1, exp2, exp3, …expN
从左向右依次执行,整个表达式结果是最后一个表达式的结果
用于循环 while( 条件1, 条件2, 条件3 ),只要最后一个条件正确,while括号内的条件也是真

在这里插入图片描述

10.下标引用、函数调用

int arr[10],arr的类型是int [10]
[ ]操作符的两个操作数是arr和10

( )的操作数是函数参数和函数名

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/390100
推荐阅读
相关标签
  

闽ICP备14008679号