【C language】操作符详解

简介: 【C language】操作符详解

一、常用操作符

二、二进制转换

(一)二进制

二进制用 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



相关文章
|
6月前
|
存储 算法 程序员
【c 语言 】位操作符详解
【c 语言 】位操作符详解
227 0
|
JavaScript 前端开发 索引
JavaScript Day02 操作符及类型转换与流程控制语句 3
JavaScript Day02 操作符及类型转换与流程控制语句 3
72 0
|
Web App开发 JavaScript 前端开发
JavaScript Day02 操作符及类型转换与流程控制语句 1
JavaScript Day02 操作符及类型转换与流程控制语句 1
78 0
|
6月前
|
C语言
C 语言运算符详解
运算符用于对变量和值进行操作。 在下面的示例中,我们使用 + 运算符将两个值相加:
174 0
|
JavaScript 前端开发
JavaScript 语法:运算符号
JavaScript 语法 之 运算符号
71 0
JavaScript 语法:运算符号
|
JavaScript 前端开发
JavaScript | 运算符与表达式
这里是`JavaScript`系列教程第四期啦!
|
JavaScript 前端开发
JavaScript Day02 操作符及类型转换与流程控制语句 2
JavaScript Day02 操作符及类型转换与流程控制语句 2
83 0
|
JavaScript 前端开发
JavaScript -- 操作符和逻辑运算
JavaScript -- 操作符和逻辑运算
JavaScript_算数运算符 及 表达式的理解
JavaScript_算数运算符 及 表达式的理解
|
JavaScript 前端开发
JavaScript运算符与表达式
JavaScript运算符与表达式
76 0