Unity基础之C#入门篇笔记:变量
变量
-
折叠代码 :#region + #endregion
本质是编辑器提供给我们的 预处理指令,它只会在编辑时有用,发布代码或执行代码,他将会自动删除; -
变量 :变量类型 变量名字 = 初始值 ;
变量就是用来存储各种不同类型数值的一个容器;
变量类型:14种;
变量名:自己定义,按一定规则;
初始值:一定要和变量类型统一;
=;是固定不变的;变量类型:
1.有符号的整型变量:能存储一定范围正负数包括0的变量类型;sbyte:存储范围:-128~127;有符号 8 位整数;默认值:0;
int:存储范围:-2,147,483,648 到 2,147,483,647;有符号 32 位整数;默认值:0;
1.Int16 值类型:表示值介于 -32768 到 +32767 之间的有符号整数。 2.Int32 值类型:表示值介于 -2,147,483,648 到 +2,147,483,647 之间的有符号整数。 3.Int64 值类型:表示值介于 -9,223,372,036,854,775,808 到 +9,223,372,036,854,775,807 之间的整数。
short:存储范围:-32,768 到 32,767;有符号 16 位整数;默认值:0;
long:存储范围:-9,223,372,036,854,775,808 到 9,223,372,036,854,775,807;有符号 64 位整数;默认值:0L;
2.无符号的整型变量:能存储一定范围负数包括0的变量类型;
byte:存储范围:0 到 255; 8 位无符号整数; 默认值:0;
uint:存储范围:0 到 4,294,967,295; 32 位无符号整数; 默认值:0;
ushort:存储范围:0 到 65,535; 16 位无符号整数; 默认值:0;
ulong:存储范围:0 到 18,446,744,073,709,551,615; 64 位无符号整数; 默认值:0;
3.浮点数(小数):能存储一定范围正负数包括0的变量类型;
float:存储7/8位有效数字,根据编译器不同有效数字也可能不同;会四舍五入,有效数字从非零数开始计算;
[定义时需要在数值后加f,因为C#中,声明的小数默认是double类型。]
令f=0.12345678f 打印出来的是0.1234568。我的电脑可存储7位有效数字,并且进行四舍五入
有效值从非零数开始计算double:存储7/8位有效数字,根据编译器不同有效数字也可能不同;抛弃的数字会四舍五入,有效数字从非零数开始计算;
decimal:存储27/28位有效数字,根据编译器不同有效数字也可能不同;抛弃的数字会四舍五入,有效数字从非零数开始计算;[不建议使用,定义时需要在数值后加m]
4.特殊类型:
bool: 表示真假的数据类型;true表真,false表示假;
bool bo1 = true;//表示bo1为真
bool bo1 = false;//表示bo1为假
char:用来存储单个字符的变量类型;
char c = 'a';//令c等于字符a
string:是字符串类型,用来存储多个字符的 没有上限;
string str = "bsbnsvnsovnspvsvrvsvspvs";
为什么有那么多不同的变量类型
不同的变量,存储的范围和类型不一样,本质是占用的内存空间不同;选择不同的数据(变量)类型装在不同的数据
- 姓名
string name = "姓名";
- 年龄
byte age = 18;
- 身高/体重
float height = 180.1f;
float weight= 68.5f;
- 性别:令true为女,false为男
bool sex = false;
[数字用int,小数用float,字符串用string,真假用bool]
多个相同类型变量,同时声明
- 多个int同时声明
int a1=1,a2=2,a3=3;
- 多个string同时声明
string str1="aa",str2="bb",str3="cc";
- …
变量初始化相关
声明变量时,可以不设置初始值,但是不建议这样写,这样写不安全
int a;
Console.WeiteLine(a);//报错,会提示使用未赋值的局部变量a
变量的存储空间(内存中)
- 1 byte = 8 bit
- 1 MB = 1024 byte
- 1 GB= 1024 MB
- 1 TB= 1024 GB
通过sizeof方法 可以获取变量类型所占用的内存空间(单位:字节)
- 有符号
int sbyteSize = sizeof(sbyte);
Console.WriteLine("sbyte 所占用的字节数为:" +sbyteSize+"字节");
int intSize = sizeof(int);
Console.WriteLine("int 所占用的字节数为:" + intSize + "字节");
int shortSize = sizeof(short);
Console.WriteLine("short 所占用的字节数为:" + shortSize + "字节");
int longSize = sizeof(long);
Console.WriteLine("long 所占用的字节数为:" + longSize + "字节");
代码运行所示:
- 无符号
int byteSize = sizeof(byte);
Console.WriteLine("byte 所占用的字节数为:" + byteSize + "字节");
int uintSize = sizeof(uint);
Console.WriteLine("uint 所占用的字节数为:" + uintSize + "字节");
int ushortSize = sizeof(ushort);
Console.WriteLine("ushort 所占用的字节数为:" + ushortSize + "字节");
int ulongSize = sizeof(ulong);
Console.WriteLine("ulong 所占用的字节数为:" + ulongSize + "字节");
代码运行所示:
- 浮点数
int floatSize = sizeof(float);
Console.WriteLine("float 所占用的字节数为:" + floatSize + "字节");
int doubleSize = sizeof(double);
Console.WriteLine("double 所占用的字节数为:" + doubleSize + "字节");
int decimalSize = sizeof(decimal);
Console.WriteLine("decimal 所占用的字节数为:" + decimalSize + "字节");
代码运行所示:
- 特殊类型
int boolSize = sizeof(bool);
Console.WriteLine("bool 所占用的字节数为:" + boolSize + "字节");
int charSize = sizeof(char);
Console.WriteLine("char 所占用的字节数为:" + charSize + "字节");
//sizeof 不能得到string类型所占用的内存大小
//因为字符串长度可变,不定
代码运行所示:
注:c#中char所占用的字节数为:2字节
根据与变量类型的范围对比,可知占用字节数越小,范围越小;
变量的本质
变量的本质是2进制—>计算机中所有数据的本质都是二进制 0和1;
数据传递只能通过电信号,只有开和关两种状态。所以就用0和1来表示两种状态;
计算机中的存储单位最小为bit(位),他只能表示0和1两个数字;
为了方便数据表示,引用byte(字节),它是由8个bit组成的存储单位,通常说一个字节为8位;
1byte = 0000 0000
二进制和十进制对比
十进制就不多说了,逢十进位,一个位有十个值: 0 ~ 9;
二进制就是逢二进位,它的一个位只有两个值:0 和 1;
十进制 | 二进制 |
---|---|
0 | 0b0 |
1 | 0b1 |
2 | 0b10 |
3 | 0b11 |
4 | 0b100 |
… | … |
9 | $0b1001 |
10 | 0b1010 |
11 | 0b1011 |
12 | 0b1100 |
13 | 0b1101 |
14 | 0b1110 |
15 | 0b1111 |
16 | 0b10000 |
… | … |
二进制转十进制
对于二进制来说, 8 位二进制我们称之为一个字节,二进制的表达范围值是从0b00000000 ~ 0b11111111;
二进制转十进制规则:从右往左看,最右边一位为第0位,若该位不为0则加上2的n位次方;
十进制转二进制规则:不断对2取余,所得结果倒着写则为二进制数;
这里教大家一个二进制转换十进制的方法,二进制 4 位一组,遵循 8/4/2/1 的规律比如 0b1010,那么从最高位开始算,数字大小是 81+40+21+10 = 10,那么十进制就是 10;
对于进制来说,只是数据的表现形式,而数据的大小不会因为进制表现形式不同而不同,比如二进制的 0b1、十进制的 1,他们本质上是数值大小相等的同一个数据。
变量的命名规则
必须遵守的规则
1.不能重名;
2.不能以数字开头;
3.不能使用程序关键字命名;
4.不能有特殊符号(下划线除外);
1.建议命名规则
变量名要有含义---->用英文含义表示变量作用
2.非常不建议命名规则
非常不建议用汉字命名
常用的命名规则
驼峰命名法
首字母小写,之后单词首字母大写(变量)
帕斯卡命名法
所有单词首字母都大写(函数,类)
C#中对大小写字母敏感;
泰课在线 学习笔记