一、常用操作符
二、二进制转换
(一)二进制
二进制:用 0,1 对 数字 进行 表述 的方法。
权重:
十进制中,每个数字由0.1.2.3…9共计十个数字组成,并且每一位表示10^0 10^1 10^2 10^3(从个位开始)…
同理,二进制也是由 0、1 两个数字组成,并且每一位有 20,21,2^2… (从最左边开始看)…
图解:
(二)进制转换
(1)二 --> 十
凑数法:因为每个二进制位上只有1或者0,并且二进制位的权重固定,因此可以直接凑数,比如:
(2)二 --> 八
C中,0开头的数字标识为八进制
规则:一个八进制数字 = 三个二进制数字
(3)二 --> 十六
C中,0x开头的数字标识为十六进制
规则:一个十进制数字 = 四个二进制数字
三、原、反、补码
前提:原反补针对的是 整形
无符号整数规则如下:
原码反码补码都是与原码相同
有符号整数的规则如下:
原码:就是某一个数字在的二进制状态
反码:原码除符号位取反
补码:在反码的基础上加一
我们以有符号整数举例:-10
四、位操作符
前提:操作数为 整形
(一)位移操作符(前提:操作数为整数)
(1)>> 位右移操作符
有两种规则,分别是 算术右移 和 逻辑右移
算术右移:针对 补码,右边超出的扔掉,左边缺的补 符号位(大多数编译器采用)
逻辑右移:针对 补码,右边超出的扔掉,左边缺的补0
(2)<< 位左移操作符
规则:针对 补码,左边超出的扔掉,右边补 0
(3)左移右移图示
(二)位操作符(前提:操作数为整数)
注:位操作符的操作数 包含 符号位
(1)按位与 &
按位与:有0为0,全1为1
题目:统计某数中二进制为1的个数 LINK
题目:判断一个数是否是2^n LINK
(2)按位或 |
按位或:有1为,全0为0
(3)按位异或 ^
按位异或:相同为0,相异为1
题目:不能创建临时变量,交换两个数值 LINK
(4)按位取反 ~
按位取反:补码包括符号位,全部取反,1变成0,0变成1
(5)上面四种位操作数的配图:
(6)拓展:常见位操作
常用位操作方法:LINK
eg:将某bite位,置为 1
五、逗号表达式
运算规则:都进行运算,与=结合只将最后一个式子进行赋值。
举例:
int a = 1; int b = 2; int c = (a>b, a=b+10, a, b=a+1);//逗号表达式 • 1 • 2 • 3
这里需要注意:
1.逗号表达式与=结合使用时候要整体用括号括起来
2.逗号表达式不用括号括起来,那么有=的情况下第一个式子赋值
知识拓展:
1.单目操作符的意思是操作数只有一个
2.值得注意的是sizeof是一个操作符,注意sizeof不是一个函数,因为sizeof的“()”其实可以省略
六、函数调用操作符和下标引用操作符
(1)函数调用操作符()
函数调用操作符是针对于函数,我们仔细观察C语言中所有函数后面都有一对小括号,main函数也不例外,其中()的操作数至少有一个函数名,也可以多个传值或者传值
(2)下标引用操作符[]
下标引用操作符是针对于数组,我们需要调用数组时候我们可以使用下表引用操作符来进行引用。
这里有个小点可以注意一下:arr[i]相等于*(arr+i)
六、结语
以上就是关于一些C语言中比较重点操作符讲解了,希望可以用所收获~
EOF