C语言操作符详细介绍(一)

简介: C语言操作符详细介绍

前言🚩


       学了这么长时间的C语言,我也刷了不少的题目,其中每到遇见关于操作题这样的概念类型的选择题我都要标记一下,或者直接瞎选一个。现在趁着刚刚考试完期末周的劲头还没有过去,硕硕就赶紧复习加上查找资料创作出来了一篇关于C语言操作符的博客。各位看官坐稳扶好了,我们要发车了🥰🥰


一、原码、反码、补码的基础概念


       在要学习下面的位操作符之前,让我们先了解原码、反码和补码的概念。对于一个数计算机要使用一定的编码方式进行存储,原码、反码、补码是机器存储一个具体数字的编码方式。


1.原码


       🍔原码就是符号位加上真值的绝对值,即:用第一位表示符号,其余位表示值。


比如:如果是8位二进制:


[+1]   正一的原码 = 0 000 0001


[-1]  负一的原码  = 1 000 0001


       🍪第一位是符号位


       🥝因为第一位是符号位,所以8位二进制数的取值范围就是:(即第一位不表示值,只表示正负。)


        [1111 1111 , 0111 1111]  即 [-127 , 127]


       💧总结一句话:原码是人脑最容易理解和计算的表示方式。


2.反码


       🍔反码的表示方法是:正数的反码是其本身,负数的反码是在其原码的基础上,符号位不变,其余各个位取反。


原码 反码
+1 0 000 0001 0 000 0001
- 1 1 000 0001 1 111 1110


       💧可见如果一个反码表示的是负数,人脑无法直观的看出来它的数值。通常要将其转换成原码再计算。


3.补码


       🍔补码的表示方法是:正数的补码就是其本身,负数的补码是在其原码的基础上,符号位不变,其余各位取反,最后+1。(也即在反码的基础上+1)


原码 反码 补码
+1 0 000 0001 0 000 0001 0 000 0001
- 1 1 000 0001 1 111 1110 1 111 1111


       💧对于负数,补码表示方式也是人脑无法直观看出其数值的。通常也需要转换成原码再计算其数值。


二、原码、反码、补码的计算方法


1.原码


       🍪原码:将最高位作为符号位(0表示正,1表示负),其它数字位代表数值本身的绝对值的数字表示方式。


2.反码


       🍪反码:如果是正数,则表示方法和原码一样;如果是负数,符号位不变,其余各位取反,则得到这个数字的反码表示形式。


3.补码


       🍪补码:如果是正数,则表示方法和原码一样;如果是负数,则将数字的反码加上1(相当于将原码数值位取反然后在最低位加1)。


三、算术操作符


       🍔算数操作符一共有五个


       1、+(加)    


       2、-(减)  


       3、*(乘)    


       4、/(除)  


       5、%(取模)


🔴1. 除了 %(取模) 操作符之外,其他的几个操作符可以作用于整数和浮点数。

🔴2. 对于 / (除)操作符如果两个操作数都为整数,执行整数除法。而只要有浮点数执行的就是浮点数除法。

🔴3. % (取模)操作符的两个操作数必须为整数,返回的是整除之后的余数。


四、移位操作符


<< 左移操作符
>> 右移操作符


🚨注:移位操作符的操作数只能是正数。

🚨注:移位操作符的操作数只能是整数。


1. 左移操作符


       🍟移位规则:左边抛弃、右边补0

 

d27c03303734c9151e7f771d449c8334_0f3da134c7af46a6a98c1d0ed0c06882.gif


2. 右移操作符


   🍟移位规则:



  首先右移运算分两种:


       ⭕ 逻辑移位


       ⭕ 算术移位



(1) 逻辑移位


       左边用0填充,右边丢弃


852b0cefa7778e43d827e1f911b1b5b1_815a3cbe2911679b9bc59c667a5b4400.gif


(2) 算术移位


       左边用原该值的符号位填充,右边丢弃


7eec34f65365521bf790fb036cf8ddb5_135eaa37956341c7b7341648c1c4282a.png


警告🚨

       对于移位运算符,不要移动负数位,这个是标准未定义的。

例如:


int num = 10;
num>>-1;//error

目录
相关文章
|
15天前
|
C语言
C语言之操作符1
C语言之操作符1
19 0
|
16天前
|
编译器 C语言
操作符详解(C语言基础深入解析)
操作符详解(C语言基础深入解析)
|
1月前
|
存储 编译器 C语言
爱上C语言:操作符详解(下)
爱上C语言:操作符详解(下)
|
2月前
|
算法 测试技术 C语言
【C语言】异或(^)操作符
【C语言】异或(^)操作符
18 0
|
2月前
|
存储 算法 编译器
【c 语言 】移位操作符详解
【c 语言 】移位操作符详解
40 0
|
2月前
|
存储 算法 程序员
【c 语言 】位操作符详解
【c 语言 】位操作符详解
52 0
|
2月前
|
存储 编译器 Linux
操作符详解【c语言】
操作符详解【c语言】
|
2月前
|
C语言
【C语言】位操作符详解
【C语言】位操作符详解
25 0
|
2月前
|
存储 C语言
【C语言】位与移位操作符详解
【C语言】位与移位操作符详解
【C语言】位与移位操作符详解
|
2月前
|
存储 编译器 程序员
c语言从入门到实战——操作符详解
C语言操作符指的是程序中用来进行各种计算、逻辑和条件操作的符号或符号组合。 操作符是编程中用于执行特定操作或比较数据的符号。它们根据操作类型分为算术、比较、逻辑和位操作符。算术操作符执行加、减、乘、除等数学运算;比较操作符比较两个值的大小或相等性;逻辑操作符连接多个条件,形成更复杂的逻辑判断;位操作符则直接对整数的二进制位进行操作。了解各种操作符的特性和用法,对于编写高效、准确的代码至关重要。
55 0