首页 > 其他分享 >C语言中操作符详解(一)

C语言中操作符详解(一)

时间:2024-06-22 10:59:26浏览次数:21  
标签:右移 反码 补码 C语言 详解 操作符 原码

众所周知,在我们的C语言中有着各式各样的操作符,并且在此之前呢,我们已经认识并运用了许许多多的操作符,都是诸君的老朋友了昂

操作符作为我们使用C语言的一个非常非常非常重要的工具,诸君一定要加以重视,认真理解,学会灵活运用。那么今天,我们就来系统的讲解一下C语言中的各式操作符

一 . 操作符的分类

(1) 算术操作符: +   、 -   、 *   、 /   、 % (2) 移位操作符:   <<  、 >> (3) 位操作符:    &  、|  、 ^ (4) 赋值操作符:    =   、 +=   、 -=   、 *=   、 /=   、 %=   、 <<=   、 >>=   、 &=   、 |=   、 ^= (5) 单目操作符: !、 ++   、 --   、 &   、 *   、 +   、 -   、 ~   、 sizeof   、 ( 类型 ) (6) 关系操作符:   > 、 >=   、 <   、 <=   、 ==   、 != (7) 逻辑操作符: &&   、 || (8) 条件操作符: ?  : (9) 逗号表达式: , (10) 下标引用:   [ ] (11) 函数调用: ( )   (12) 结构成员访问:   .   、 ->  

以上为诸君罗列了一些在C语言中我们常用的操作符,在此之前,我们已经介绍过了算术操作符、赋值操作符、逻辑操作符、条件操作符和一部分单目操作符

不知道的诸君呢,可以移步到以下链接看看哦

 算术、赋值、复合赋值、单目操作符:C语言中的操作符-CSDN博客

关系、条件、逻辑操作符:关系操作符,条件操作符与逻辑操作符_关系模式操作符-CSDN博客

在讲操作符之前呢,我们需要铺垫一下,所以我们先来认识一下C语言中的原码、反码、补码

二 . 原码、反码、补码

众所周知,计算机用的都是二进制运算法,而在我们的计算机系统中,整数的二进制的表达方式有三种,这就是我们的原码、反码、补码

我们整数分为有符号整数无符号整数是吧,通俗点儿说,就是有负号的只有正整数的,那么在这其中,有符号整数的三种表达方式均有符号位和数值位两部分,在二进制序列中,最高位的 1 位是被当做符号位,剩余的都是数值位

符号位用 “ 0 ” 表示 “ 正 ”,用 “ 1 ” 表示 “ 负 ”

正整数的原码、反码、补码都相同,负整数的原码、反码、补码表达方式各有不同

(1)原码

直接将数值按照正负数的形式翻译成二进制,得到的32位数就是该数的原码

(2)反码

原码最高的符号位不变,其他位置依次按位取反(0变1,1变0),就可以得到反码

(3)补码

反码 + 1 就可以得到补码

补码可以通过取反、 + 1 的操作得到原码

对于整形来说:数据存放在计算机内存中其实质就是存放的补码

三 . 移位操作符

左移操作符: <<

右移操作符: >>

(移位操作符只能作用于整数)

(1)左移操作符

移位准则:左边抛弃,右边补 0 

左移操作符图解:

(2)右移操作符

移位准则:(右移运算分为两种)

1 . 逻辑右移:右边抛弃,左边填 0

2 . 算术右移:右边抛弃,左边用原该值的符号位填充

由此可见,我们VS中默认用的应该是算术右移的准则

逻辑右移图解:

算术右移图解:

注意:对于移位运算符的运用,只能进行移动正单位的操作,不能左移(右移)- 1 单位,这不能代表右移(左移)- 1 个单位

OKK,有关部分操作符的知识点今天就讲到这里,欲知后事如何,且听下回分解,咱们下期见!与诸君共勉!!!

标签:右移,反码,补码,C语言,详解,操作符,原码
From: https://blog.csdn.net/Dove_Xxx/article/details/139869819

相关文章

  • 详解mysql安装、常见问题及解决方法
    一、MySQL简介MySQL是一个广泛使用的开源关系型数据库管理系统(RDBMS),由瑞典公司MySQLAB开发,后被SunMicrosystems收购,最终归属Oracle公司所有。它以其快速、可靠、可扩展的特性而闻名,并且因其开源的性质在各类应用中得到了广泛应用。以下是MySQL的详细简介:主......
  • Java中的构造器详解
    在Java中,构造器(也称构造方法)是一种特殊的方法,用于初始化对象的状态。当创建对象时,构造器会被自动调用。以下是关于Java中构造器的详细解释:命名规则:构造器的名称必须与类名完全相同。构造器没有返回值类型,连void也没有。用途:初始化对象的属性(实例变量)。执行一些必要的操作,......
  • LOMBOK使用详解
    最近正在写SpringBoot系列文章和录制视频教程,每次都要重复写一些Getter/Setter、构造器方法、字符串输出的ToString方法和Equals/HashCode方法等。甚是浪费时间,也影响代码的可读性。因此,今天就给大家推荐一款Java开发神器——Lombok,让代码更简单易读。什么是LombokLombok是一款J......
  • Spring Bean 生命周期详解
    SpringBean生命周期详解在Spring框架中,Bean的生命周期由Spring容器全权管理。了解和掌握Bean的生命周期对于使用Spring开发稳定且高效的应用程序至关重要。本文将详细介绍SpringBean生命周期的五个主要阶段:实例化、属性注入、初始化、使用和销毁,并涵盖各个阶......
  • C语言数据类型和变量
    ⽬录数据类型介绍signed和unsigned数据类型的取值范围变量算术操作符:+、-、*、/、%赋值操作符:=和复合赋值单⽬操作符:++、–、+、-强制类型转换scanf和printf介绍正文开始数据类型介绍C语言提供了丰富的数据类型来描述生活中的各种数据。......
  • 优先级队列(堆)的知识点详解
    目录1.优先级队列1.1概念2.优先级队列的模拟实现2.1堆的概念2.2堆的存储方式2.3堆的创建2.3.1堆向下调整2.4堆的插入与删除2.4.1堆的插入2.4.2堆的删除3.常用接口介绍3.1PriorityQueue的特性3.2PriorityQueue常用接口介绍1.优先级队列1.1概念前......
  • 面试题(TCP/IP协议)详解三次握手
    TCP/IP协议中的三次握手我们首先来了解一下TCPTCP(TransmissionControlProtocol,传输控制协议)是一个面向连接的、可靠的、基于字节流的传输层通信协议。以下是TCP的一些主要特点:面向连接:在数据传输之前,TCP必须先建立连接(三次握手),在数据传输结束后,还要终止这个连接(......
  • c语言 字符串操作函数
    字符串操作函数1.strlen()函数strlen()函数用于计算字符串的长度,返回字符串的字符数。语法:size_tstrlen(constchar*str)参数:str–要计算长度的字符串。返回值:字符串的字符数。示例:#include<stdio.h>#include<string.h>intmain(){charstr[50]="......
  • C语言 内存操作函数
    内存管理进程空间程序,是经源码编译后的可执行文件,可执行文件可以多次被执行,比如我们可以多次打开office。而进程,是程序加载到内存后开始执行,至执行结束,这样一段时间概念,多次打开的wps,每打开一次都是一个进程,当我们每关闭一个office,则表示该进程结束。程序是静态概......
  • 【数据结构与算法 刷题系列】判断链表是否有环(图文详解)
                   ......