您的位置:首页 > 移动开发 > Swift

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

2017-05-09 07:07 176 查看
一.整型
1. 和C语言,java等有所不同,Swift中的整型没有short,Long,只有Int类型。

2. Int8:表示在内存里通常占8位,数值范围是:-128~ 127
   Int16:表示在内存里通常占16位,数值是:-32768~ 32767
   Int32:表示在内存里通常占32位,数值是:-2147483648~ 2147483647
   Int16:表示在内存里通常占16位,数值是:-2的63次方~
2的63-1
  Int:这种类型并未专门指定整型的长度,Int型所占有的内存空间与当前平台的原生字节长度相同----对于32位的平台,Int型与Int32的长度相同,
        对于64位的平台,Int型与Int64型的长度相同。一般来说,开发时使用Int型就足够了,这样可以提高代码的一致性和可复用性。
        
3. Swift中的无符号整数的表示方法为在上面5种类型的前面加上大写的字母U,即UInt8,UInt16,
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,表示10的N次方。
  十六进制:这种形式的浮点数必须以0x开头,且需要使用p代表指数部分,其中p表乘以2的p次方。举个栗子:0x5.ap2即0x5.a2x2的2次方。
   具体算法:0x5.ap2 = 0x5.a2x2^2 = 0x5.a2 x 4 = 0x16.88(因为a是10,ax4=40,以16为单位往前进1,所以是进2余8。又5x4=20,加上小数点后的进2得22,22以16为单位往前进1余6,得到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. Swift的Float, Double之间需要进行显示转换,浮点型和整型之间也需要进行显示转换。

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

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

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

上一篇:每天学一点Swift——Swift的基本数据类型(一)
下一篇 :每天学一点Swift----元组(tuple)类型
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  swift