c# 数据类型 小结(未完)

 

一、15种预定义类型

 

1、非数值类型

(1)布尔类型

@1、一个布尔类型的字面值使用关键字true和false。

@2、在c#中数值类型不具有布尔意义,即0不代表false,非0也不代表true。

@3、虽然从理论上说,一个bit就能容纳一个布尔类型的值,但布尔数据类型的实际大小为一个字节。

(2)字符类型

@1、为了输入一个字符类型的字面量,需要将字符放到一对单引号中。

@2、转义字符:就是不能直接插入源代码中,而是需要进行特殊处理即在这些字符前加一个反斜杠(\)。

@3、转义序列:将反斜杠和转义字符代码统称为转义序列。

@4、常见的转义字符如下

        转义序列:    \'           \"            \\                \0           \a          \b              \f               \n            \r               \t                   \v                          \uxxxx              

        字符名称:  单引号 双引号 反斜杠      Null     Alert      退格         换页          换行       回车    水平制表符  垂直制表符     十六进制Unicode字符 

                            \x[n][n][n]n      十六进制Unicode字符(前三个占位符可选)\uxxxx的长度可变版本

                           \uxxxxxxxx       Unicode转义序列,用于创建代理项对

@5、知识补充:char用于表示16bit字符,其取值范围对应于Unicode字符集。但是,并不是所有Unicode字符都可以用一个16bit char来表示。刚开始提出Unicode概念时,它的设计者一位16bit已经足够。但随着支持的语言越来越多,才发现当初的假定是错误的。结果是,一些Unicode字符要由一对称为“代理项”的char构成,共32bit。

           代理项:某些语言的文字编码要用两个16bit来表示。第一个代码值称为高位代理项,第二个代码值称为低位代理项。在代理项的帮助下,Unicode可以表示100多万个不同的字符。美国和欧洲地区很少使用代理项,东亚国则很常用。

2、整数类型(取值范围求法原理????组成原理中定点数在计算机中的表示)

          类型               大小                  取值范围(包括边界)                          BCL(base class library)名称

          sbyte             8bit                 -2^7---2^7-1(-128---127)                              System.SByte

          byte               8bit                  0----2^8-1(0----255)                                      System.Byte

          short             16bit               -2^15-----2^15-1(-32768---32767)              System.Int16

          ushort           16bit               0---2^16-1(0----65535)                                  System.UInt16

          int                   32bit                -2^31-----2^31-1                                            System.Int32

          uint                 32bit               0---2^32-1                                                       System.UInt32

          long                64bit               -2^63-----2^63-1                                             System.Int64

         ulong               64bit                0---2^64-1                                                      System.UInt64

@1、一个整数值(没有小数点)通常默认为int,前提是该值不是太大,以至于无法用int来存储。如果值太大,编译器会把它解释成long。此外,编译器允许想一个非int的数值类型赋值,前提是字面值对于目标数据类型来说是合法的。如short s=42,byte =77。

3、浮点类型(取值范围的求法 组成原理浮点数在计算机中的表示????)

     类型              大小                            范围                                                                           BCL名称                            有效数字

   float                32bit                    1.5*10^ -45----3.4*10^38(前都有正负号)             System.Single                        7

   double            64bit                   5.0*10^ -324----1.7*10^308                                         System.Double                15---16

 

@1、浮点数的精度是可变的。如果读取本来是0.1的一个浮点数,那么可能很容易读取成0.099 999 999 999 999 999 或0.100 000 000 000 000 000 1或者其他非常接近0.1的一个数

@2、如果输入一个带小数点的字面值,编译器会自动把它解释成double类型。除非在其后面加上f ,编译器才认为它是float类型。

4、decimal类型

  类型              大小                            范围                                                                                          BCL名称                            有效数字

decimal          128bit                    1.0*10^ -28----大约7.9*10^28(前都有正负号)             System.Decimal                       28---29

 decimal类型与浮点数的区别:

@1、decimal类型保证范围内的所有十进制数都是完全准确地,0.1就是0.1,而不是一个近似值;与此相反,用浮点数表示十进制数,可能造成舍入错误。

@2、decimal类型的基数是十进制的,浮点类型的基数是二进制的。

@3、decimal类型具有比浮点类型更高的精度,但它的范围较小。所以从浮点类型转换为idecimal可能发生溢出错误。

@4、decimal类型的计算速度要稍微慢一些。

@5、decimal适合大二精确的计算,尤其是金融计算。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值