每天学一点Swift——Swift的基本数据类型(二)

来源:互联网 发布:淘宝店铺推广怎么设置 编辑:程序博客网 时间:2024/05/21 00:20

.整型

1. C语言,java等有所不同,Swift中的整型没有shortLong,只有Int类型


2. Int8:表示在内存里通常占8位,数值范围是:-128 127

   Int16:表示在内存里通常占16位,数值是:-32768 32767

   Int32:表示在内存里通常占32位,数值是:-2147483648 2147483647

   Int16:表示在内存里通常占16位,数值是:-263次方 263-1

  Int:这种类型并未专门指定整型的长度,Int型所占有的内存空间与当前平台的原生字节长度相同----对于32位的平台,Int型与Int32的长度相同,

        对于64位的平台,Int型与Int64型的长度相同。一般来说,开发时使用Int型就足够了,这样可以提高代码的一致性和可复用性。

        

3. Swift中的无符号整数的表示方法为在上面5种类型的前面加上大写的字母U,即UInt8UInt16 Uint32 Uint64 Uint----但是,在一般开发时要尽量避免使用无符号数。


4. 当对一个整型变量赋予超过的它的表示范围的数值时,编译器会报错。


5. 如果声明一个变量时没有指定具体的类型,只是简单地赋值为整型,则Swift自动判断该变量的类型为Int型。


6. 同其他的编程语言形同,整数有4种表示方式:

   十进制:普通的整数

   二进制:0b开头的整数

   八进制:0o开头的整数

   十六进制:0x开头的整数

   

** 7 Swift中特有的一点:为了提高数值的可读性(包括浮点数),Swift允许在数值中添加下划线作为分隔符,也允许在数值的左面添加额外的不限个数的0。但是这些下划线或0并不会影响数值本身的值。举个栗子:

    lei menoy = 1_000_000  //一眼就能看出是一百万。

    var price = 0045

    

.浮点型


1.  浮点型比整型表示的范围大,可以存储比Int64更大或更小的数。


2. Float表示32位的浮点数,

   Double表示64位的浮点数。

   

3. 浮点数的三种表示方式:

   十进制:普通的浮点数。

   科学计数法:同其他的编程语言相同,左边的数字小于10,后跟eN,表示10N次方。

  十六进制:这种形式的浮点数必须以0x开头,且需要使用p代表指数部分,其中p表乘以2p次方。举个栗子:0x5.ap20x5.a2x22次方。

   具体算法:0x5.ap2 = 0x5.a2x2^2 = 0x5.a2 x 4 = 0x16.88(因为a10ax4=40,以16为单位往前进1,所以是进28。又5x4=20,加上小数点后的进2222216为单位往前进16,得到0x16.88) = 22.53125

   

4. Int类型类似,如果声明了一个变量或常量时没有指定具体的类型,只是简单地指定了初始值为浮点数,Swift会自动判断该变量的类型为Double


5. Swift还提供了3个特殊的浮点型数值:正无穷大,负无穷大,非数。


6. 使用一个正数除以0.0将得到正无穷大数值,使用一个负数除以0.0将得到负无穷大数值,0.0除以0.0或对一个负数开方将得到一个非数。----必须说明的是,只有浮点数除以0.0才会得到无穷大数值,如果使用整型除以0将会引起编译错误


7. 所有的正无穷大数值都相等,所有的负无穷大数值都相等;而非数不与任何数相等,甚至和非数自己都不相等。



.数值型之间的类型转换

1. 整型之间的转换:Swift要求不同整型的变量或数值之间必须进行显示转换----小范围到大范围时要显示转换,大范围到小范围时也要显示转换,此时还要注意转换到小范围后超出取值范围而导致的运行时错误:Illegal instruction


2. SwiftFloat Double之间需要进行显示转换,浮点型和整型之间也需要进行显示转换。


3. Swift语言中各种数值型的表示范围由大到小为:Double --> Float -->Int64 --> Int32 --> Int16 --> Int8.



.布尔型

1. Swift中,Bool类型的数值只能是truefalse,不能用0或者非0来表示,其他数据类型的值也不能转换成Boo了类型。


2. 和其他编程语言相同,Bool类型主要用来控制条件语句,循环语句,还有三目运算符中。




上一篇:每天学一点Swift——Swift的基本数据类型(一)

下一篇 :每天学一点Swift----元组(tuple)类型

0 0