c#运算符

2023-10-29

一运算符
运算符是一种告诉编译器执行特定的数学或逻辑操作的符号。 C# 有丰富的内置运算符,分类如下:
1. 算术运算符
下表显示了 C# 支持的所有算术运算符。假设变量 A 的值为 10,变量 B 的值为 20,则:
在这里插入图片描述
在这里插入图片描述
例如:

//假如A=21;B=10;
            int A = 21,B = 10;
            textBox1.Text = "A+B=" + (A + B);
            textBox2.Text = "A-B=" + (A - B);
            textBox3.Text = "A*B=" + (A * B);
            textBox4.Text = "A/B=" + (A / B);
            textBox5.Text = "A%B=" + (A % B);

在这里插入图片描述
注:
(1)“+”运算符
在算术运算中起到加法的作用
在字符串与其他类型数据之间的使用起到连接字符串作用

 //假如A=21;B=10;
            int A = 21,B = 10;
            textBox1.Text = "A+B=" + A + B;

在这里插入图片描述

//假如A=21;B=10;
            int A = 21,B = 10;
            textBox1.Text = "A+B=" + (A + B);

在这里插入图片描述
(2)自加自减运算
假设变量A的值为10

在这里插入图片描述
例如:

 //假设A=10;B=0;
            int A = 10;
            int B;
            B = A++;
            textBox1.Text = "B=" + B + ";A=" + A;
            B = ++A;
            textBox2.Text = "B=" + B + ";A=" + A;
            int a = 10;
            int b;
            b = a--;
            textBox3.Text = "b=" + b + ";a=" + a;
            b = --a;
            textBox4.Text = "b=" + b + ";a=" + a;

在这里插入图片描述
a++ 先赋值后运算;++a先运算后赋值;a- -先赋值后运算;- -a先运算后赋值;
计算机进行运算是按照补码进行运算的
面试案例:
int i=2147483647 i 的补码是:0111 1111 1111 1111 1111 1111 1111 1111
i 的补码+1 是:1000 0000 0000 0000 0000 0000 0000 0000
所以 i+1 得到的结果是-2147483648
(3). 关系运算符
下表显示了 C# 支持的所有关系运算符。假设变量 A 的值为 10,变量 B 的值为 20,则:
在这里插入图片描述
例如:

 int A = 10;
            int B = 20;
            label3.Text = "(A == B)="+(A == B).ToString();
            label4.Text = "(A != B)=" + (A != B).ToString();
            label5.Text = "(A > B)=" + (A > B).ToString();
            label6.Text = "(A < B)=" + (A < B).ToString();

在这里插入图片描述
(4)逻辑运算符
下表显示了C#支持的所有逻辑运算符。假设变量A为布尔值true,变量B为布尔值false,则:
在这里插入图片描述
例如:

 label1.Text = ((textBox1.Text == "A") && (textBox2.Text == "A")).ToString();
            label2.Text = ((textBox1.Text == "A") || (textBox2.Text == "A")).ToString();
            label3.Text = (!((textBox1.Text == "A") && (textBox2.Text == "A"))).ToString();

在这里插入图片描述
(5).赋值运算符
下表列出了 C# 支持的赋值运算符:
在这里插入图片描述
例如:

int a = 10, b = 12, c;
            label4.Text = "c=a+b:c=" + (a + b);
            label5.Text = "b+=a:b=" + (b += a);

在这里插入图片描述
(6)位运算符
位运算符作用于位,并逐位执行操作。&、 | 和 ^ 的真值表如下所示:
在这里插入图片描述
下表列出了C#支持的位运算符。假设变量A的值为60,变量B的值为13,则:
在这里插入图片描述
在这里插入图片描述
例如:

int a = 60;
            int b = 13;
            label3.Text = "(a & b)=" + (a & b).ToString();
            label4.Text = "(a | b)=" + (a | b).ToString();
            label5.Text = "(a ^ b)=" + (a ^ b).ToString();
            label6.Text = "(~a)=" + (~a).ToString();
            label7.Text = " (a << 2)="+ (a << 2).ToString();
            label8.Text = " (a >> 2)="+(a >> 2) .ToString();

在这里插入图片描述
(7)注意事项
1.&和&&

(1). &和&&都表示逻辑与(and)的运算符,只有当运算符两边的结果都是true整个运算才为true
(2). &&具有短路功能,如果左边表达式结果为false则右边表达式不再进行运算判断。而&则不然,不论左边表达式结果是true还是false,右边表达式仍然会进行运算判断

2.|和||

(1). |和||都表示逻辑或(or)的运算符,运算符两边的表达式只要有一个是true整个表达式都是true
(2). ||具有短路功能,如果左边的表达式结果为true则右边表达式不再进行运算判断。而|则不然,不论左边表达式结果是true还是false,右边表达式都会进行运算判断

例子:

   int a = 60;
            int b = 13;
            label9.Text ="&"+ ((a++ > 70) & (b++ < 20)).ToString() + "【a=" + a + "】【b=" + b + "】";
            a = 60;
            b = 13;
            label10.Text = "&&"+((a++ > 70) && (b++ < 20)).ToString() + "【a=" + a + "】【b=" + b + "】";
            a = 60;
            b = 13;
            label11.Text = "|"+((a++ > 70) | (b++ < 20)).ToString() + "【a=" + a + "】【b=" + b + "】";
            a = 60;
            b = 13;
            label12.Text = "||"+((b++ < 20)||(a++ > 70)).ToString() + "【a=" + a + "】【b=" + b + "】";

在这里插入图片描述
(8)杂项运算符
a. sizeof()返回数据类型(值类型)的大小。sizeof(int),将返回4
b. typeof()返回class的类型。typeof(StreamReader);
c. &返回变量的地址。&a;将得到变量的实际地址。
d. “※”变量的指针。*a;将指向一个变量。
e. ?x:y-条件表达式,如果条件为真?则为x:否则为y
f. is判断对象是否为某一类型。
g. as-if(ford is car);// 检查Ford是否是Car类的一个对象。as强制转换,即使转换失败也不会抛出异常。

 string str = "";
            label1.Text ="bool类型的大小是:"+ sizeof(bool).ToString();
            label2.Text="string类型属于"+typeof(Form)+"类";
            label3.Text = "三元表达式进行对a赋值(10,8)比较大的数:a=" + (10 > 8 ? 10 : 8);

在这里插入图片描述
(9)三元运算符
运算表达式: Exp1 ? Exp2 : Exp3;
条件运算符 ? :,可以用来替代 if…else语句。它的一般形式如下:
其中,Exp1、Exp2 和 Exp3 是表达式。请注意,冒号的使用和位置。? 表达式的值是由 Exp1 决定的。如果 Exp1 为真,则计算 Exp2 的值,结果即为整个 ? 表达式的值。如果 Exp1 为假,则计算 Exp3 的值,结果即为整个 ? 表达式的值。
(10)as进行类型转换

         object a="123";
            label4.Text = "a原本类型是" + a.GetType().Name+ "\r\n" + "a经过as进行强转为string类型" + (a as String).GetType().Name;
//a是object,但是通过给a赋一个string类型的值,然后通过GetType方法得到其最终类型就是string

在这里插入图片描述
(11)运算符优先级
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

c#运算符 的相关文章

  • 循环队列的实现(初始化、入队操作、出队操作、判满、判空、获取队头、队尾元素、销毁操作)

    typedef struct int array int front int rear int count 用count 的方式判断循环队列是否满 int N 总个数 MyCircularQueue 初始化 MyCircularQueue
  • 宝塔面板最全最快搭建https访问网站终极版教程

    我的个人博客 网址 https www minikuba com 迷你酷吧是一个基于程序员经验为基础分享技术文章 算法解题 大厂面试真题 热门项目的平台 致力于为大家提供更多涵盖前后端技术 技能的学习 助力广大热衷编程开发者全面发展 本文章
  • 动态集合和静态集合的不同

    ul li 1 li li 2 li li 3 li li 4 li li 5 li li 6 li ul
  • 铰接式车辆的横向动力学仿真提供车辆模型研究(Matlab代码实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 参考文献 4 Matlab代码实现 1 概述 铰接式车辆是一种具有铰接连接的多体系统 具
  • 【乌拉喵.教程】不同负载下继电器的保护电路设计(解决继电器触点粘接的问题)

    最近将多年来收集到的教学视频 国内外图书 源码等整理整合拿出来 涉及arm Linux python 信号完整性 FPFA DSP 算法 stm32 单片机 制图 电子模块 kali 出版社图书等 资料目前约1 5TB 详情 1 5TB 电
  • 当Selenium遇到TestNG

    当Selenium遇到TestNG 用 Selenium 测试 Web 页面时 所重现的各种行为依赖于测试人员的输入参数 例如 选择下拉餐单的项目 在文本框中输入字符等 不同的测试用例对应不同的输入 若有方法能够简单 有效的传入测试用参数
  • 图片自适应屏幕大小的css写法

    如果想让图片自适应屏幕的小而不是宽高固定不变可以在css代码里加入 img height auto width auto 9 width 100 用max width设置如果图片尺寸大于当前浏览器尺寸就自动缩放 图片的高度设置正比缩放 但是
  • 设计模式七大原则详解

    文章目录 一 java为什么要有设计模式 二 设计模式七大原则 三 单一职责原则 四 接口隔离原则 五 依赖倒转原则 六 里氏替换原则 七 开闭原则 八 迪米特法则 一 java为什么要有设计模式 写代码就像建楼房一样 要考虑到它后期是否以
  • 从0开始学go第四天

    模板继承 继承根模板 重新定义 块模板 Go Web开发系列教程 07 Go模板继承 哔哩哔哩 bilibili 解析模板时 base模板要在前 渲染模板时 要用ExecuteTemplate 而不是Excute 模板补充 Go语言标准库之
  • 电子竞赛项目回顾——基于多物料识别分拣的离线式监管工业流水线系统

    1 项目简介 本项目融合了工业物联网技术 FPGA图像处理等技术 针对工业流水线上的多物料分拣 提出了一种自下而上全自动化式 工厂监管离线式的解决方案 工厂内部所有的控制层 感知层均通过无线传输层与工厂总控主机相连 同时主机实时将工厂运行的
  • linux之关机、重启命令

    Linux几种关机 重启 相关命令 在linux下一些常用的关机 重启命令有shutdown halt reboot 及init 它们都可以达到重启系统的目的 但每个命令的内部工作过程是不同的 通过本文的介绍 希望你可以更加灵活的运用各种关
  • Tree 【POJ - 3237】【树链剖分+一些特殊的处理】

    题目链接 这道题 说来还的确困扰了我一个多小时 当时就在想 我该如何处理那些边权 我将边化为点 以及点 默认权值为0 的取相反数后的处理 因为点取相反数之后还是0 会困扰到那些边的 然后 我想到了 如果这段区间的返回的值为0 那么就说明了肯
  • podman 是什么?和 docker 有什么区别?

    什么是 podman Podman 是一种无守护进程的容器引擎 可以创建 管理和运行 OCI 容器 容器可以以非 root 身份运行 也可以使用 root 身份运行 Podman 是由 Red Hat 开发 从 Red Hat Enterp
  • 【BAT 多IF条件实例】

    echo off start 设置常用过滤关键字 set key1 202008 set key2 202009 set key3 20200919 打印出常用关键字 echo 1 key1 2 key2 3 key3 读取用户输入 set
  • Android Studio Git功能使用

    Android Studio Git功能使用 简介 常用功能 提交代码到远程分支 合并分支代码 拉新分支 简介 在Android Studio中使用自带的Git管理工具来进行版本管理 可以轻松应对需要频繁进行本地分支和远程分支操作的项目 比
  • 成功解决pip/conda install cartopy安装失败问题

    使用pip 或conda 安装cartopy pip install cartopy 报错 ERROR Command errored out with exit status 1 command home mlli anaconda3 e
  • 前端学习笔记

    笔记 小知识 V ON绑定事件 V BIND绑定属性 Network中可以查看当前发起的请求 XHR这个标签出现在Chrome浏览器的开发者工具Network选项卡中 XHR类型即通过XMLHttpRequest方法发送的请求即AJAX请求
  • (React入门)状态state与属性props

    状态 State State介绍 状态 state 使用this state来引用 state本身就是状态的意思 状态指的是事物所处的状况 状况就是环境 通常使用state存储简单的视图状态 比如说下拉框是否显示 单选 是否选中 或者需要自
  • try-catch和throw,throws的区别和联系

    区别一 throw 是语句抛出一个异常 throws 是方法抛出一个异常 throw语法 throw lt 异常对象 gt 在方法声明中 添加throws子句表示该方法将抛出异常 如果一个方法会有异常 但你并不想处理这个异常 就在方法名后面

随机推荐

  • 【牛客面试必刷TOP101】Day4.BM15删除有序链表中重复的元素-I和BM17二分查找-I

    作者简介 大家好 我是未央 博客首页 未央 303 系列专栏 牛客面试必刷TOP101 每日一句 人的一生 可以有所作为的时机只有一次 那就是现在 文章目录 前言 一 删除有序链表中重复的元素 I 题目描述 解题分析 二 二分查找 I 题目
  • java与数据库数据加密方法

    1 java测试加密代码 AES和HEX加密及解密工具类 AES加解密字符串工具类 public class AesEncrypt public static void main String args String aes en aes
  • mysql数据库总结_mysql数据库总结

    1 root localhost yum y install mysql mysql server 利用yum在线安装mysql数据库 2 root localhost chkconfig mysqld on 设置开机启动mysqld服务
  • Android网络请求,全方位优雅解析

    网络请求的基本流程 网络请求步骤 用户输入一个网址到网页最终展现到用户面前 大致流程总结如下 在客户端浏览器中输入网址URL 发送到DNS 域名服务器 获得域名对应的WEB服务器的IP地址 客户端浏览器与WEB服务器建立TCP 传输控制协议
  • webpack chunkFilename设置name后不生效,id 生效

    preface 最近又开启新项目了 以之前的某个项目为基础搭建 我进行了优化 遇到了 chunkfilename name 配置后不生效 之前配置 webpack 2 6 1 webpack 配置 output path config bu
  • Jenkins从Gitlab拉取代码

    做持续集成经常需要从代码管理 下面讲一下如何使用Jenkins从Gitlab拉取代码 这里采用的是私钥 公钥配对模式 自己本地生成一堆秘钥 gitlab系统配置里选择Deploy Keys 内容为公钥 在Jenkins里新建Credenti
  • 【Python蒙特卡罗法计算圆周率】

    蒙特卡罗法计算圆周率 今天遇到一个很有意思的方法求解圆周率 给大家分享一下 理论基础 蒙特卡罗法也称统计模拟法 统计试验法 是把概率现象作为研究对象的数值模拟方法 是按抽样调查法求取统计值来推定未知特性量的计算方法 蒙特卡罗是摩纳哥的著名赌
  • Qt5.3 MIPS Openwrt交叉编译 移植

    网上关于ARM Linux移植比较多 在此把qt mips linux移植过程记录如下 参考https blog csdn net yihui8 article details 39503645 目标板 MIPS Openwrt 宿主 Ub
  • 计算机基础ppt2010知识点,《计算机应用基础(PowerPoint2010电子演示文稿系统)》...

    计算机应用基础 PowerPoint2010电子演示文稿系统 是教育部 十二五 职业教育国家规划教材 本书以向学习者传授计算机基础知识和培养计算机应用能力为主线 系统地介绍了计算机应用基础的一般理论和实训 本书的内容着重计算机的基础知识 基
  • Sqlserver中如何快速写入千万级测试数据

    数据库结构 id int username nvarchar 50 password nvarchar 50 addtime datetime token nvarchar 50 roleid int 一 程序中写for循环 实测一分钟写入
  • STM32_3(GPIO)

    一 GPIO简介 GPIO General Purpose Input Output 通用输入输出口 8种输入输出模式 输出模式可控制端口输出高电平 驱动LED 蜂鸣器 模拟通信协议输出时许等 输入模式可读取端口的高低电平或电压 用于读取按
  • Qt扩展-KDDockWidgets 简介及配置

    Qt扩展 KDDockWidgets 简介及配置 一 概述 二 编译 KDDockWidgets 库 1 Cmake Gui 中选择源文件和编译后的路径 2 点击Config 配置好编译器 3 点击Generate 4 在存放编译的文件夹输
  • Win10+OpenCV2.4.13+VS2013+CUDA7.5配置教程

    首先说明一下 OpenCV2 3 13之前的版本不支持CUDA7 5 因此配置总是会出问题 在OpenCV官网下载OpenCV2 4 13版本 此版本支持CUDA7 5 另外OpenCV2 4 13是支持VS2013的 但不清楚支不支持VS
  • 力扣:旋转数组(Java)

    给你一个数组 将数组中的元素向右轮转 k 个位置 其中 k 是非负数 class Solution public void rotate int nums int k int n nums length k n rotate 2 nums
  • MySQL脏读、不可重复读、幻读

    MySQL脏读 不可重复读 幻读 事务的特性 ACID 原子性 Atomicity 指处于同一个事务中的多条语句是不可分割的 即一个事务内的所有语句 要么全部成功要么全部失败 一致性 Consistency 事务必须使数据库从一个一致性状态
  • gpio上拉下拉区别

    gpio上拉下拉区别 GPIO是一颗芯片 MCU 必须具备的最基本外设功能 GPIO通常有三种状态 高电平 低电平和高阻态 高阻态换句话说就是断开状态或浮空态 因此上拉和下拉其中一个强大的理由就是为了防止输入端悬空 使其有确定的状态 减弱外
  • 【经典】修改SpringBoot的默认服务器Tomcat,替换Tomcat

    以下将介绍如何替换掉SpringBoot默认服务器Tomcat 我们将从两个案例 替换为Jetty和替换为UnderTow Tomcat是目前较流行的web容器 但过于臃肿 Jetty是个内嵌WEB容器 支持长连接 如聊天等长时间保持连接
  • 图论----同构图(详解)

    图论当中的术语 假设G V E 和G1 V1 E1 是两个图 如果存在一个双射m V V1 使得对所有的x y V均有xy E等价于m x m y E1 则称G和G1是同构的 这样的一个映射m称之为一个同构 如果G G1 则称他为一个自同构
  • JS:各种遍历方式总结

    js的遍历方式真的是有很多 有用于遍历数组的 也有用于遍历对象的 各种方式有什么样的应用场景 如何选择恰当的遍历方式 很容易就让人迷糊 所以做一下总结吧 第一种 普通for循环 直接遍历出的是索引 注意每次遍历都需要获取一次arr的长度 f
  • c#运算符

    一运算符 运算符是一种告诉编译器执行特定的数学或逻辑操作的符号 C 有丰富的内置运算符 分类如下 1 算术运算符 下表显示了 C 支持的所有算术运算符 假设变量 A 的值为 10 变量 B 的值为 20 则 例如 假如A 21 B 10 i