操作符号

时间:2022-12-04 18:56:12

一、

'+'   '-'  '*'  '/'

这些是最基本的加减乘除了,就不需要解释了吧

二、

'%'

然后就是取模符,意思就是取余数,例如:​​7%3​​,结果为1

三、

'<<'  '>>'

然后是左移操作符和右移操作符,就是把该数字的二进制为向左或者右移动一位,例如:

int a=2;
int b=a<<1;
printf("%d",b);
return 0;

此时运行结果是​​b=4​​​,int在电脑中回申请32个比特位,例如a,他的二进制数是​​00000000000000000000000000000010​​​,然后b是a的二进制向左移动一位,b的就是​​00000000000000000000000000000100​​​,简单来说就是左边丢弃一位,右边补个零,复数除外,因为复数的话第一个二进制数是1,例如​​a=-2​​​,他的二进制序列是​​10000000000000000000000000000010​​​,设置一个​​b=a<<1​​​,此时b的二进制序列是​​10000000000000000000000000000100​​​,打印出来​​b=-4​​,既然讲到这儿,那就再补充一下原码,反码和补码吧。

负数的二进制表示形式: 其实有3种

①原码:直接根据数值写出的二进制序列就是原码

②反码: 原码的符号位不变,其他位按按取反就是反码

③补码:反码+1,就是补码

正整数的原 反 补码相同

例如:

原码:​​10000000000000000000000000000001​

反码:​​11111111111111111111111111111110​

补码:​​11111111111111111111111111111111​

四、

'&'  '|'  '^'

然后这些分别是按位与,按位或,按位异或

​'&’​​:按位与操作符,按照对应的二进制位,全1取1,有0取0。

​'|'​​:按位或操作符,按照对应的二进制位,有1取1,全0取0。

​'^'​​:按位异或操作符,按照对应的二进制位,相同取0,不同取。

五、

'='  {'+='  '-='  '*='  '/='  '<<='  '>>='  '%='·····}

这些都是赋值操作符,第一个是直接赋值,后面这些是符合赋值,例如​​a=a+100​​​和​​a+=100​​​完全等价,可以理解为简写,后面这些道理相同。​​=​​​是赋值,​​==​​是判断。

六、单目操作符

'!'  '-'  '+'  '&'  'sizeof'  '~'  '++'  '--'  '*'

‘!':逻辑反操作

‘-’:负值

‘+’:正值

‘&’:取地址

‘sizeof’:操作数的类型长度,单位字节

‘~’:对一个二进制数按位取反,符号位也反

‘--’:前置--(先减减,再使用),后置--(先使用,再减减)

‘++’:前置++(先加加,再使用),后置++(先使用,再加加)

‘*’:间接访问操作符(解引用操作符)

七、逻辑符号

在C程序中,0为假,其他数字全为真

​'&&'​​:逻辑与,全真为真,有假为假

​'||'​​:逻辑或,有真为真,全假为假

七、三目操作符(条件操作符)

int b=(a > 5 ? 1 : -1);

​a > 5​​​:表达式1 —— ​​1​​​:表达式2 —— ​​-1​​:表达式三

这句话意思就是a是否大于5,为真b=1,为假b=-1.

八、下标引用操作符:​​[]​

九、函数调用操作符​​()​​,调用函数时候用.

十、结构成员访问操作符​​"."​