C#学习笔记——数据与运算(二)

C#基础-定义常量的两种方法 阅读详情

1.常量与变量

1.1.常量

        常量是指哪些为人们可读格式的固定数值,在程序的运行过程中值不会发生改变,称为常量。

        在C#中可以通过关键字const来声明常量,格式如下:

        const 类型标识符 常量名 = 表达式;

const double PAI = 3.14;
//定义了一个double类型的常量PAI,值为3.14

常量的特点:

  • 常量在声明时必须赋予初值,且值在程序的运行中无法改变;
  • 定义常量时表达式中的运算符对象只允许出现常量和常数,帮你存在变量。

1.2.变量

        变量是程序运行过程中用来存储数据的存储单元。简单理解就是数学函数中的x,y,就是一个用来表示一个数据的名称。

1.2.1.变量的定义

        在程序的运行至可以定义多个变量,以适应程序的各种需求。在定义变量时必须给每一个变量起一个名字,称为变量名,以便区分不同的变量。在计算机中,变量名代表存储地址。C#的变量名必须是合法的C#标识符。

        变量在定义时,为了表明存储的数据必须指定数据类型。有了变量名和变量类型,一个变量的定义才是完整的。定义格式:

        类型标识符 变量名1, 变量名2,......;

//定义变量的一些例子
float f = 1.23f;
char a = 'a';
int x, y;
x = 1;
y = 2;
int z = x + y;

        虽然我们可以使用aaa,b这种变量名,但是在实际开发中还是建议使用具有实际意义的单词组合、缩写等方式命名变量以便记忆和使用,例如:Counter、UserName、PassWord等。最好遵循一定的命名规则,比如帕斯卡命名法等。 

注意:C#规定,任何变量必须在使用前定义。

1.2.2.变量的赋值

        变量本身只是一个能保存某种类型数据的内存单元,对于程序而言,使用变量名只是为了访问其中的内存单元。变量的赋值,就是将数据保存到变量中的过程。格式为:

        变量名 = 表达式;

        在赋值的过程中需要注意表达式和变量的类型必须相同,对于数值类型的赋值则是和类型转换的规则相同,如果是隐式转换可以编译器自动完成,如果是显示转换需要用户进行操作。

        另外,如果在变量定义的时候进行赋值,叫做变量的初始化。

2.运算符

        运算符是表示各种不同运算的符号。例如:加减乘除等操作。

        C#的运算符可以分为:算术运算符、赋值运算符、关系运算符、逻辑运算符、位运算符、条件运算符和其他运算符。

2.1.算术运算符

        算术运算符用于对操作数进行算数运算。C#中的算术运算符和数学中的很相似。见表1: 

表1-C#算术运算符
运算符意义运算对象数目运算对象类型运算结果类型例子
+取正或加法1或2任何数值类型数值类型+1,a+2
-取负或减法1或2-2,b-1
*乘法22*a,x*y
/除法25/3,a/c
%模25%2,10%3
++自增运算1i++,++i
--自减运算1i--,--i

        虽然对于数学的加减乘除很好理解,但是有些人可能对于模、自增和自减不太了解。同样的在计算机中也有一些不同于数学的含义。

  • “/”除运算在计算机中处理整数型数据时会舍去余数。例如10/3在计算机整数运算时等于3,余数1会被舍去;
  • 模运算是求余数,并且可以用于整数和浮点数。例如10%3,10.0%3.0结果也是1;
  • 自增/自减运算具有两种情况即运算符在操作数前面(前缀),在操作数后面(后缀)两种情况在使用时会有一些区别。例子如下:
using System;
class test{
    static void Main(){
        int x = 2;
        //此时y = x++等价于y = x, x = x + 1
        int y = x++;//后缀格式
        Console.WriteLine("y = {0}", y);
        //此时y = ++x等价于x = x + 1, y = x
        y = ++x;//前缀格式
        Console.WriteLine("y = {0}", y);
    }
}
//最终输出的结果为:
    y = 2;
    y = 4;

2.2.赋值运算符

        赋值运算符用于将一个数据赋予一个变量。

表2-C#赋值运算符
类型符号说明
简单赋值运算符=x = 1
复合赋值运算符+=x+=1等价于x=x+1
-=x-=1等价于x=x-1
*=x*=1等价于x=x*1
/=x/=1等价于x=x/1
%=x%=1等价于x=x%1
&=x&=1等价于x=x&1
|=x|=1等价于x=x|1
^=x^=1等价于x=x^1
>>=x>>=1等价于x=x>>1
<<=x<<=1等价于x=x<<1

2.3.关系运算符

        关系运算符用于在程序中比较两个值的大小,关系运算符的结果类型是布尔值,也就是true或false。

表3-C#关系运算符
符号意义运算结果类型运算对象个数实例
>大于布尔型,条件成立为true,不成立为false22>3,a>b
<小于4<7,x<y
>=大于等于3.14>=pai
<=小于等于a<=5
==等于3==2,x==2
!=不等于x!=y,2!=3

        如果关系运算符两边是数值类型对象,那么就是比较两个数的大小,如果是字符类型对象,则是比较两个字符的Unicode编码的大小。

        如果关系运算符的对象是字符串,则是比较两个字符串的大小,对于字符串str1和str2比较大小的规则如下:

  1. 从左到右依次比较str1和str2中的每一个字符;
  2. 如果str1中的字符大于str2中的字符,那么str1大于str2;若字符相等,则继续比较下一个;
  3. 如果str1仍有字符,而str2字符已经比较完了,则str1大于str2;
  4. 如果两个字符串中所有字符都相等,则两个字符串相等。

        如果比较对象是布尔类型,则true大于false。

2.4.逻辑运算符

        逻辑运算符用于表示两个布尔值之间的逻辑关系,逻辑运算的结果是布尔类型。

表4-C#逻辑运算符
符号意义运算符对象类型运算结果类型运算对象个数例子
!逻辑非布尔类型布尔类型1!(a > b)
&&逻辑与20<=x && x<10
||逻辑或2x>y || x>0
  • 逻辑非的运算结果就是取反,true变false,false变true;
  • 逻辑与的运算结果是,双true为true,其他情况都为false;
  • 逻辑或的运算结果是,双false为false,其他情况都为true。

        逻辑运算符常用在多条件判定时,例如我需要x在0到3的范围内,可以表示为:x>0&&x<3。

2.5.位运算符

        位运算符表示了对运算对象进行位运算。

表5-C#位运算符
符号意义运算符对象类型运算类型结果运算对象个数例子
~按位取反整型或者可以转换成整数类型的其他类型整型1~x
&按位与2x & y
|按位或2x | y
<<左移2x << 1
>>右移2x >> 2
^按位异或2x ^ y

        按位取反是将整型转换成二进制,然后每一位1转换为0,0转换为1。例如:

                整数12的二进制为:00001100

                ~12的结果:11110011

        按位与运算符&的运算规则如下:

                0&0 = 0, 0&1 = 0, 1&0 = 0, 1&1 = 1;

        按位或运算符|的运算规则如下:

                0|0 = 0, 0|1 = 1, 1|0 = 1, 1|1 = 1;

        按位异或运算符^的运算规则如下:

                0^0 = 0, 0^1 = 1, 1^0 = 1,1^1 = 0;

        左移运算符<<是将整型二进制数除符号位外,全部按位左移,高位丢弃,低位补0。例如:

                整数12的二进制为:00001100

                12<<1为:00011000(十进制为24)

        右移运算符>>是将整型二进制数,全部按位右移,如果是无符号数高位移入0,如果是有符号数,若符号数为0,则左边移入0,若符号数为1,则左边移入0或1,取决于计算机系统。移入0称为“逻辑右移”,移入1称为“算术右移”。例如:

                整数12的二进制为:00001100

                12>>2为:00000011(十进制为3)

2.6.条件运算符

        条件运算符是一个三目运算符,格式为:

                操作数1?操作数2:操作数3

        例如:x>y?x:y 含义为:如果x>y为true,则返回x,反之则返回y。故这个式子的含义是在xy中返回较大的一个。

2.7.其他运算符

  1. 字符串连接符(+)。可以将多个字符串连接起来形成一个新的字符串。例如:
    “abc” + “def” 结果为abcdef
  2. is运算符。is运算用于检查表达式是否是指定类型,如果是,结果为true,否则为false。例如:
    int x = 2;
    bool isTest = x is int; //结果为true
  3. sizeof运算符。sizeof运算符用于获得值类型数据在内存中占用的字节数。例如:
    sizeof(int) //结果为4。因为int类型变量占用四个字节
  4. new运算符。new运算符用于创建对象和调用对象的构造函数,将会在类与对象中详细介绍。
  5. typeof运算符。typeof运算用于获得对象的类型。例如:
    int x = 1;
    type(x)  //结果为int
  6. checked和unchecked运算符。用于控制整数算术运算中当前环境的移除情况。

3.表达式

        由运算符、常量喝变量所组成的符号序列即为表达式。

        对于多个运算符组合形成的表达式,需要按照运算符的优先级顺序进行运算。

表6-C#运算符优先级(从高到低)
类别运算符
基本(x)  x.y  f(x)  a[x]  x++  x--  new  typeof  sizeof  checked  unlocked 
一元+  -  !  ~  ++x  --x  (T)x
乘除*  /  %
加减+  -
移位<<  >>
关系<  >  <=  >=  is  as
等式==  !=  
按位与&
按位异或^
按位或|
逻辑与&&
逻辑或||
条件?:
赋值=  *=  /=  +=  -=  <<=  >>=  &=  ^=  |=

        结束语:对于这一章节的内容划分上有点失算,导致这篇搁置有点久了。其实本来写这个系列的时候是打算把重心放在后面的泛型、委托、属性之类的进阶语法,但是在实际编写总结的时候发现其实有很多平时用不到的边边角角已经遗忘了,也算是对于自己基础的一个查缺补漏吧。也很感谢阅读这些文章的您,是你们的阅读和点赞让我有继续下去的动力,也希望这些文章能够对您有些许帮助。如有不足之处,烦请指正。

C#元数据学习笔记 C#元数据详解 阅读详情

相关推荐

【Unity】ABB CRB 15000 外部引导运动实战:从配置到实时控制

本文详细介绍了ABB CRB 15000协作机器人的外部引导运动(EGM)功能在Unity环境中的实战应用。从RobotStudio配置到Unity实时通信架构,再到EGM运动控制技巧和问题排查,全面解析如何实现机器人的高精度实时控制。通过实际案例展示EGM技术在精密装配等场景中的显著效果,帮助开发者快速掌握这一先进技术。

weixin_29057695的博客 445

C#中常量及变量、三元表达式、结构体、枚举、数组

什么是常量、变量? 常量—指的是永远不变得量、 变量—指经常会变得量 C#中常量、变量表示: 变量: int number = 10; 常量: const int number = 10; 区分:变量前面加Const就会变成常量。 三元表达式 语法:表达式1?表达式2:表达式3 举例:bool result =5>3? True:false; 例子: int number =...

无 2003

mysql 学习笔记(1):mysql 基本概念和 mysql workbench 的基本使用方法

…

qq_52740163的博客 1355

【深入浅出C#】章节 2:数据类型和变量:变量和常量的声明和初始化

在C#编程中,变量和常量是非常重要的概念。变量用于存储和操作数据,而常量则代表不会改变的固定值。本文介绍了变量和常量的声明和初始化方法。首先,我们学习了变量的命名规则和约定,以确保命名的一致性和可读性。然后,我们深入讨论了变量的作用域范围和生命周期,以及局部变量和全局变量之间的区别。我们还介绍了可空类型的使用,以处理可能为空的变量。对于常量,我们了解了其概念和特点。通过声明常量,我们可以避免在代码中使用硬编码的字面量,提高代码的可读性和可维护性。

喵叔 2297

【Jlink & C#】通过C#实现Jlink RTT上位机的功能

某天看到安富莱家的自己开发的调试器可以实现输出中文调试信息到自己编写的Jlink RTT上位机上,觉得无比神奇,略好奇到底是如何做的,找了很久,发现其上位机的对应的实现好像也没有完全开源出来。后来经过很多搜索确认,知道了几个事实:那么有没有可能用C#来控制Jlink呢?答案是,有!!! 解决思路在于,C#调用JLinkARM.dll里面的函数 这里转载下我认为很有意义的发现结合以上的几个发现,加上我自己的测试,我把我对接JLinkARM.dll的C#接口分享出来,不保证都能用,我只是测试了几个常用的功能,R

一只爱做笔记的码农 9150

数字IC后端时钟树综合实战:OCC电路优化与时钟树平衡策略

本文深入探讨了数字IC后端设计中时钟树综合的关键挑战,重点分析了OCC电路时钟树优化的必要性。通过实战案例,详细阐述了如何通过手动干预、时钟分组与分段长树等策略,避免工具自动平衡导致的时序违例和资源浪费,从而有效实现时钟树平衡并提升设计质量。

weixin_29306261的博客 329

C#常量:定义与使用全解析

在C#中,常量(const)是不可变的值,必须在声明时初始化,且后续无法修改。常量的定义使用const关键字声明必须与初始化同时完成可以是任何基本数据类型(如intdoublestring等)// 十六进制赋值,等效十进制75常量的特点值不可修改,尝试重新赋值会导致编译错误命名通常使用大写字母(惯例,非强制)编译时常量会在编译时被直接替换为值变量与常量的区别变量可以重复赋值,常量不可修改变量可以先声明后赋值,常量必须声明时初始化常量在内存效率上通常更高(编译时直接替换)

2402_86266540的博客 616

小白也能懂!一步步教你用FPGA加速YOLO目标检测(入门篇)

安装到 PYNQ 开发板中。该库为 PYNQ 平台提供了对量化神经网络(如 YOLO)的硬件加速支持。确保你的电脑已连接到外网,如 WiFi 或热点(手机热点理论上也可用,未实测)。当你看到安装成功的提示后,打开 Jupyter Notebook,你会发现在。趁这个机会,泡了杯茶,刷了会儿手机,顺便感慨了一下开源社区的强大……页面中多出了一些新的项目文件夹 —— 这就是我们刚才安装的。参数,浅拷贝只克隆最近一次提交,减少数据量,避免超时问题。初始化,打开该文件,即可运行我们的Tiny YOLO。

FJN110的博客 1597

揭秘C#循环语句的无限可能

C#中的for循环包含三个部分:初始化变量、条件表达式和自增/自减操作。基本结构为:for(int i=0;i<10;i++){循环体}。特别要注意避免死循环,可通过break强制终止或continue跳过当前迭代。break会完全退出循环,而continue仅跳过本次循环。使用时应确保循环有明确的终止条件,否则可能导致无限循环。典型应用包括打印固定次数内容和筛选特定条件数据。

2402_86266540的博客 457

C#串口通信从入门到精通(7)——整数/浮点数与二进制、八进制、十六进制之间的转换与C#实现

本文详细介绍由博主开发的DataConvert串口通信帮助类的用法,该帮助类涵盖了串口通信领域所有的数据转换方法,帮助大家快速编写串口通信程序!

qq_34059233的博客 2880

BLDC控制实验:方波、霍尔、开环、定速、正转

本文记录博主学习BLDC控制软件的过程。 文章目录1 概述2 软件架构及工具链2.1 软件架构2.2 工具链3 底层代码生成3.1 时钟配置3.2 按键输入配置 1 概述 本文是博主第一次做BLDC控制实验,目的仅仅是写代码让BLDC转起来,而暂时不考虑其他复杂的需求。 控制的方法是比较简单的六步换相法。利用电机内部的霍尔传感器,通过参考电机厂家给出的二二导通换相表,生成方波来控制电机。第一次实验为了简化需求,只考虑开环、定速、正转的情况: 开环:不考虑速度反馈,直接给PWM让电机转起来; 定速:不考虑速

u013288925的博客 1万+

C#学习笔记(二):变量、数据类型和运算符

变量、数据类型 给变量赋值,如果想指定float,在数字后面加上F/f;如果想指定decimal,在数字后面加上m。 0-9:48-57 A-Z:65-90 a-z:97-122 字符串格式化输出 我们在使用Console.writeLine时,可以使用占位符格式化字符串 在字符串中使用{}...

weixin_30399055的博客 311

把外部系统一键装进 SAP Build Work Zone:从零开始创建 HTML5 URL App

HTML5 URL App 是一种轻量级解决方案,可将外部网页或系统入口快速集成到SAP企业门户中。开发者只需在manifest.json中配置目标URL、导航模式等参数,无需开发完整前端应用。该方案利用SAP BTP的HTML5 Application Repository集中存储静态资源,通过HTML5 Apps Content Provider将应用暴露给子账号,最终在SAP Build Work Zone中以Fiori磁贴形式呈现。文章详细介绍了manifest.json的关键配置、三种基础设施组件

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 241

C#零基础学习笔记(二)变量、数据类型与运算符详解

变量顾名思义就是可以变化的量,是程序在内存中开辟的一块空间,专门用来存储程序运行过程中需要使用的数据(数字、文字、真假值等)。存储数据、处理数据、输出数据,而变量就是存储数据的核心载体。1. 变量必须先赋值再使用,未赋值变量直接使用会编译报错2. char单引号、string双引号,绝对不能混用3. 小数默认是double,float类型数值必须加F后缀4. 整数相除结果为整数,会直接舍弃小数,需要小数结果必须转浮点型5. 赋值= 和 判断相等== 极易混淆,判断相等必须用两个等号。

a1808724077的博客 205

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

【C#基础】C# 运算符总结

编程语言 C# 运算符的总结介绍。

好学若饥,谦卑若愚。 7912

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

C#学习笔记(上)

经本人搜集网上资料后整合而成的C#学习笔记,知识点很全面,前面某些很基础的内容绝大部分人都已经在学C/C++的时候学过了,所以基本一笔带过,其它地方都尽量写的很详细。

m0_75104457的博客 2315

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

C#位运算

在C#中可以对整型运算对象按位进行逻辑运算,按位进行逻辑运算的意义是:依次取被运算对象的每个位,进行逻辑运算,每个位的逻辑运算结果是结果值的每个位,C#支持的位逻辑运算符如下表。 1、位逻辑非运算 1变0,0变1 比如,对二进制的10010001进行为逻辑非运算,结果等于01101110,用十进制表示就是:~145等于110 用途: 暂时还没想明白,这个有啥实际的应用......

学Java,找哪吒 9894

c#运算符

一运算符 运算符是一种告诉编译器执行特定的数学或逻辑操作的符号。 C# 有丰富的内置运算符,分类如下: 1. 算术运算符 下表显示了 C# 支持的所有算术运算符。假设变量 A 的值为 10,变量 B 的值为 20,则: 例如: //假如A=21;B=10; int A = 21,B = 10; textBox1.Text = "A+B=" + (...

weixin_44870681的博客 7076

C# 学习笔记

MicrosoftVisualStudio(简称VS)是美国微软公司的开发工具包系列产品。VS是一个基本完整的开发工具集,是编写C#程序或者说.NET程序最常用的开发工具。因其功能强大、简单易用、速度快、智能度高,被网友戏称宇宙第一IDE。

qq_52144597的博客 2046

C#学习笔记整理【二】

C#学习笔记整理【二】 目录C#学习笔记整理【二】1、C#内置引用类型2、C#运算符:3、数据类型转换:4、装箱和拆箱:5、goto语句:6、数组:数组也是对象【C#内万物皆对象】1)定义:2)数组定义的三种方式:3)遍历数组:4)多维数组:5)交错数组:6)数组是引用类型:7)隐式类型的数组:7、方法的概念:1)方法的定义:2)Main函数:3)静态类:4)静态方法和实例方法(定义和调用):5)...

一个偶尔更新,有点神经质的开发人员,专注于网络安全和人工智能应用领域。 925

C#学习笔记——数据与运算(一)

C#数据类型分为两大类:值类型和引用类型。

Buling_0的博客 1069

C#学习笔记

小白的C#笔记

wmss003的博客 1696

c#学习笔记

c#学习笔记

Yamoonn的博客 1215

C#数据类型与基本运算

C#数据类型与基本运算

weixin_44706943的博客 820

【C#基础】运算符二

逻辑运算符

正心 诚意 修身 1052
上一篇: C#学习笔记——类型转换和装箱拆箱
下一篇: 算法-数组篇01-二分查找
Buling_0
博客等级 码龄5年 232粉丝 93原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值