一.基础类型
别名属于System类,例如System.SByte,表格中System已省略
其中,赋值时二进制简写0b,八进制简写0,十六进制简写0x

类型别名允许的值大小(bit)
sbyteSByte-128~1278
byteByte0~2558
shortInt16-32768~3276716
ushortUInt160~6552516
intInt32-2147483648~214748364732
uintUInt320~429496729532
longInt64升级解锁64
ulongUInt64???64

从数据中可以看出,float的最大值虽然可以到3.410^38,但因为底数只有24位,所以在十进制的数的表示中,最高只有8位,到16777216,所以当整数部分超过一定位数时,精度就很难确保,如果整数部分有4位,那么在十进制中精度甚至不能达到5位。相比之下,double大大改进了这个缺点。相比之下,可以看出decimal的指数部分虽然只有-26~0短短的几位,但是其一表示的十以内数对十进制的移位(貌似?),其二由于底数96位的数量,精度可以确保大约28位的精度。(2^96=7.9228...10^28)

类型别名m的最小值m的最大值e的最小值e的最大值近似的最小值近似的最大值
floatSinge02^24-1491041.5*10^-453.4*10^38
doubleDouble02^53-10759705.0*10^-3241.7*10^308
decimalDecimal02^96-2601.0*10^-287.9*10^28

bool值在C#里不等于整数值,且在需要用bool值进行判断时,不可以用其它类型的值代替判断(C里可以)。

类型别名允许的值
charChar一个Unicode字符,存储0~65535
boolBooleantrue或false
stringString一组字符(字符串)

二.算术运算符
假设A=10,B=20
python中‘%’为取模,(float)A/B=C,A%B等价于A-C(C经过趋近后)*B。取余C总向0趋近,取模C总向无穷小处趋近,如-27%10,C=-2.7,取余C=-2,取模C=-3。-27%10=-7(取余),-27%10=3(取模)

运算符描述实例
+数学+A+B=30
-数学-A-B=-10
*数学*A*B=200
/两边整数‘/’号是整除,得出除数只取整数部分28/10=2,-38/10=-3
%%取余 A%B等价于A-A/B*B(/是整除)21%10=1,-27%10=-7
++自加 a++=先赋值在增加 ++a=先自增再赋值A++等同A=A+1为21
--自减 规律同上A--等同于A=A-1为19

<<=和>>=经测试C#中只能用于int型,且位不足时并非标准补位0,有待测试。或符号为制表符‘|’,表中用汉文字代替。

运算符描述实例
=赋值符号,将右边的值赋给左边变量a=5
+=a+=3等价于a=a+3a+=3
-=同上a-=3
*=同上a*=3
/=同上a/=3
%=同上a%=3
<<=同上,位左移,常用于乘2a<<=2等价于a*4
>>=同上,位右移,常用于除2a>>=2等价于a/4
&=同上,1&1=1,0&1=1,1&0=1,0&0=00&a=0,全1&a=a
^=同上,1^1=0,1^0=1,0^1=1,0^0=00^a=a,全1^a=a取反
或=同上,1或1=1,1或0=1,0或1=1,0或0=00或a=a,全1或a=全1

三.关系运算符

运算符描述实例
==两边数值相等为真a==b
!=两边数值不等为真a!=b
>左边大于右边为真a>b
<左边小于右边为真a<b
>=左边大于等于右边为真a>=b
<=左边小于等于右边为真a<=b

四.逻辑运算符
逻辑或为"||",与制表符冲突

运算符描述实例
&&左右两边皆为真值,左&&右的值为真true&&false
逻辑或,俩竖线左右两边有一值为真值,左逻辑或右为真true逻辑或false
!真即假,!假即真!true

五.其它
三目运算符 a>b?a:b,若a>b为真,整个式子返回a值,若为假,整个式子返回b值。
位运算符包括&,|,^,~,其中三个在算数运算符那里已经说明特性。
取反运算符特性:~1=0,~0=1。在n位数字上,~0=n位1,~n位1=0。
其中位运算可能会更改数字的符号位,因此得出的数学逻辑结果和实际编码方式有关。C#中采用的是标准补码存储,即负数为正数反码加1,经过测试得出一个固有规律,~a+a=-1,取反正数为-(正数-1),取反负数为-(负数+1),~0=-1,~-1=0。但当以无符号整数方式打印时,得出规律则为,~a+a=n位1代表的十进制数(2的n次方-1)。