一.整型
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类型主要用来控制条件语句,循环语句,还有三目运算符中。