类型 | 说明(8位等于1字节) | 范围 |
---|---|---|
sbyte | 8位有符号整数 | -128~127 |
short | 16位有符号整数 | -32768~32767 |
int | 32位有符号整数 | -2147483648~2147483647 |
long | 64位有符号整数 | -9223372036854775808~9223372036854775807 |
byte | 8位无符号整数 | 0~255 |
ushort | 16位无符号整数 | 0~65535 |
uint | 32位无符号整数 | 0~4294967295 |
ulong | 64位无符号整数 | 0~18446744073709551615 |
类型 | 说明 | 范围 |
---|---|---|
float | 精确到7位数 | ±1.5*10的245次方~±3.4*10的38次方 |
double | 精确到15-16位数 | ±5.0*10的-2324次方~±1.7*10的308次方 |
int a; //定义变量
int b=20; //变量的赋值
数据类型分为值类型和引用类型—从数据储存的方式不一样
值类型–数据存放在栈中的变量
int uint long ulong short ushort byte sbyte—整数
double float decimal------小数
bool------布尔
char-------字符
结构体
枚举
引用类型—数据存放在托管堆中,而栈中存放的是堆的引用地址
string 数组 类 委托 接口
堆栈都是内存而已,为了数据储存的效率性,操作系统会把内存划分为好几块分别管理,其中就有两块内存就是堆和栈。
所谓栈就是这块内存的数据是先进后出其中栈中一般存放的是轻量级数据,而栈中的数据是不需要GC来管理。而是变量的生命周期结束后操作系统就会自动释放(先进后出),而且栈的数据是连续开辟,访问速度会快一些。
所谓托管堆就是这块内存由GC来管理,GC如果发现这块内存没有使用那么就会自动释放回收。托管堆中一般存放的是重量级数据,同时不是连续开辟,访问速度比较慢。
1个字节=8位 1KB=1024B 1M=1024KB 1G=1024M 1T=1024G
变量的生命周期–作用域:在花括号内是变量生命周期范围—局部变量
表达式:由运算符(操作符)与操作数所构成的式子-----表达式的值
运算符:具有一定运算意义的符号
操作数的个数
一元(单目)运算符
二元(双目)运算符
三元(三目)运算符
自增++ 自减–
算术运算符:+ - * / %
关系运算符: > < >= <= != ==
位运算符:& | ~ ^(异或) << >>
逻辑运算符:&&(逻辑与)||(逻辑或)! (非)
条件运算符:?:
赋值表达式:= 复合赋值(+= -+ *= /= %= &= |= ^= <<= >>=)
//复合赋值
int a+=b;
//int a+=b同等与 a=a+b
逻辑与优先级高用逻辑或
逻辑表达式与关系表达式值都是bool
位运算与算术运算表达式的值一般是数值
位运算一般整数之间运算(也可以是char(编码整数值))
- 逻辑与 逻辑或效率:
逻辑运算符两边一般都是BOOL类型的表达式,注意效率优先的问题。
条件表达式的结合顺序是从左往右,赋值表达式的结合顺序是从右往左
原码–>反码(位取反)–>补码(位+1)
00010011–>
11101100–>
11101101
补码-(位-1)->反码(位取反)–>原码
00010011–>
00010010–>
11101101
无符号正数反码补码和原码一样
有符号的负数占一个符号位,如果第一位是负数,则符号位不参与运算,列如-1
//-1 原码 1000 0001
// 反码 1111 1110
// 补码 1111 1111 计算机底层存放的负数是补码
sbyte m1=-1;
sbyte res=(sbyte)(m1|2);
//res输出结果为 -1
//推导过程
//正数2补码与原码相同
//2的补码为0000 0010
//负数-1的补码为1111 1111
//求或运算则为
// 0000 0010 -->2(补码)
// 1111 1111 -->-1(补码) 两者求或运算
// 1111 1111 -->-1(补码转换为原码后为-1)
//计算机底层用补码进行计算
//计算时 符号位不参与计算
sbyte m1=-3;
sbyte res=(sbyte)(m1<<2);
//11111101-->11110100
概念:流程(做一件事情的一个前后逻辑顺序步骤 称为流程-流程可以很好的诠释我们的执行一件事情的逻辑)
分类:
if
, if-else
当执行一件事情的时候,存在两种情况的时候,这个时候通过条件是否满足的判断从而决定是否执行某段代码-存在一个条件是否成立的分支结构if(bool)
{//语句
}
如果bool类型的表达式为真,那么就执行花括号里面的语句,如果为假不执行。
当然这个语句可以是一句,也可以是多句。如果只有一句,有的时候可以省略花括号。
if(bool)
{//语句1:
}
else
{//语句2:
}
如果bool类型的表达式为真,执行语句1,否则执行语句2
else一般和离他最近的 if 匹配,同时 if 和else 直接按不可以有别的代码。如果只有一句可以省略花括号。一般不去省略 else
通过计算判断板卡是否在限位
//判断是否限位 例如,索引是8,判断当前位是否为1
//0000 0000
//1000 0111
short data=455;
data>>=8; //右移8位
if((data&1)==1)//等于1
{//限位开关有效
}
else //等于0
{//限位开关无效
}
if-else里面是可以嵌套if-else–当每个分支情况满足的时候里面又存在分支的时候,这个时候想到if-else嵌套。
if-else if switch-case
当你执行一件事情的时候,可能存在多种情况的时候,而你只是执行多种情况的一种。
什么时候考虑 选择结构:当你存在多可能性的时候,面临着多选一的时候 条件一般是一个bool类型的变量或者表达式
if(//条件1){//语句1;}
else(//条件2){//语句2;}else(//条件3){//语句3;}
switch-case语法—什么时候考虑,当你存在多种可能性的时候,同时每种可能性往往是具体的某一个值的时候,优先考虑switch-case
switch(//变量或者表达式){//case值1://语句://break;//case值2://语句;//break//case值3//语句;//break//defaut://语句;//break}
备注:变量一般是整型 字符串 或者枚举
break 必须加 表示跳出switch-case整个结构
for循环:一般用于已知固定循环次数的。什么时候想到循环?–当有重复的事情发生的时候或者类似重复的时候。
语法:
本文发布于:2024-01-29 16:04:10,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170651545516449.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |