C#面经(二)--c#常用变量类型总结
一:整数
≥ byte can store any whole number between 0 and 255.//whole number:整数
≥ sbyte can store any whole number from –128 to 127.//s即signed,意思是带正负号
≥ short can store any whole number from –32,768 to 32,767.
≥ ushort can store any whole number from 0 to 65,535.//u指unsigned,意思正数
≥ uint can store any whole number from 0 to 4,294,967,295.
≥ long can store any whole number between minus and plus 9 billion billion.
≥ ulong can store any whole number between 0 and about 18 billion billion.
简单的记住下面这张图
除了byte外,其他都是正负对称区间。
二.小数
金融中货币一般用decimal,上面的数字都代表内存中的位数(bit),内存的每个bit都可以是0或1两种值,因此n bits,意思可以存2的n次方个值。比如short类型16位,2的16方为65536,由于包含了0,所以应该是正负65536/2-1=32767.
三. 类型转换
把位数大的转为位数小的,如果直接赋值是无法编译的,在人工已知可转的情况下,可以采用强转方式,不过使用强转的前提是我们能确保未来不发生bug。比如有个int类型,我们能确定未来它都小于30000的话,将其强转为short自然是可以的,一旦它可能有40000的值出现,那么short不够装了。这种强转英文称为cast.使用cast代表使用者知道类型不同,但告诉编译器确保不会有问题。当然,如果使用者使用了强转,而结果却发生了位数过大的情况,也不会报错,会被按一定的规则转换。