一天一点,学习永不止步!
关于swift的基本数据类型,其实在变量和常量定义的时候,基本上也使用过,现在就整型单独扩展说明一些有趣儿的事情,嘻嘻
当然了,如果对定义变量.常量还不是很明白的,可以参照Hello Swift!<Appdelegate的生命周期及变量定义> 这篇
现在就说今天的内容吧:
1.swift整型数据各种进制存储
//管理数据
//在此方法中书写swift的数据类型->进制表现形式
func managerDatas1(){
//之前说了变量定义的几种方式,包括指定类型定义,不指定类型等
//eg:
var numOne = 10
var numTwo :Int = 20;
//常量定义也是如上所述类型,只不过由var->let
//eg:
let strOne = "china";
let strTwo = "CHINA";
//现在,就继续说明swift中数据类型
/*1.进制表现方式
格式:
十进制数,无前缀
二进制数,以 0b 为前缀
八进制数,以 0o 为前缀
十六进制数,以 0x 为前缀
注意:
定义的变量或常量 存储值为十进制。
*/
//eg:
//十进制
var numThree = 10
println("numThree==\(numThree)") //numThree==10
//二进制
var numFour = 0b1010
println("numFour==\(numFour)") //numFour==10
//八进制
var numFive = 0o12
println("numFive==\(numFive)") //numFive==10
//十六进制
var numSix = 0xA
println("numSix==\(numSix)") //numSix==10
//综上:为什么都打印的是'10'?
//因为在Swift中,变量或常量储存的值必须为十进制
//比如:numFour = 0b1010 是先将0b1010转换为十进制的10,然后再赋值给numFour的.上面的八进制/十六进制都是如此转换的
}
记住一条就好:swift中的整型号数据存储是按照10进制的方式存储的,不论给值的时候是什么进制,在赋值的时候都会转换为10进制进行赋值
2.整型的有符号和无符号之分以及取值范围
//此方法中书写swift的数据类型->整型变形形式
func managerDatas2(){
//2.整型变现形式
/*
说明:
整型:
有符号和无符号类型
有符号类型:Int ,Int8 ,Int32,Int64
无符号类型: UInt ,UInt8 UInt32,UInt64
注意:
如果你的开发环境是32位,那么Int = Int32
如果你的开发环境是64位,那么Int = Int64
如果你使用mac OS X Yosemite 10.10和Xcode 6.0 Beta 那么你的系统是64位的
*/
//A.有符号的整型
//eg:
var numA : Int = 10
println("numA==>\(numA)") //numA==>10
//8位
var numB : Int8 = 10
println("numB==>\(numB)") //numB==>10
//16位
var numC : Int16 = 10
println("numC==>\(numC)") //numC==>10
//32位
var numD : Int32 = 10
println("numD==>\(numD)") //numD==>10
//64位
var numE : Int64 = 10
println("numE==>\(numE)") //numE==>10
//B.无符号的整型
//eg:
var numF : UInt = 10
println("numF==>\(numF)") //numF==>10
//8位
var numG : UInt8 = 10
println("numG==>\(numG)") //numG==>10
//16位
var numH : UInt16 = 10
println("numH==>\(numH)") //numH==>10
//32位
var numI : UInt32 = 10
println("numI==>\(numI)") //numI==>10
//64位
var numJ : UInt64 = 10
println("numJ==>\(numJ)") //numJ==>10
//综上所述:有符号和无符号的整型到底有什么区别?
//无符号的定义的变量值必须为正数,有符号的定义的变量值可以为正数也可以为负数(取值范围不同)
//eg:
var numK : Int = -10
//注意:
//var numL : UInt = -10 //error:Integer literal overflows when stored into 'UInt'
//然后其他的8/16/32/64位皆如此
//看看Int和UInt的最大和最小值
var numIntMax = Int.max
var numIntMin = Int.min
var numUIntMax = UInt.max
var numUIntMin = UInt.min
println("\(numIntMin)<= Int <=\(numIntMax)") //-2147483648<= Int <=2147483647
println("\(numUIntMin)<= UInt <=\(numUIntMax)") //0<= UInt <=4294967295
//当然了,其他的位数也可如此方法获取,在开发中,怎样使用,自行考虑
}
其实,这个跟所有语言都类似,有符号的则可以赋值负数,无符号的则只能赋值正数,当然,他们的取值范围是不同的,在实际开发中,可以根据自身所需,取相应的类型
3.整型的其他
func managerDatas3(){
var num1 = 1001100
var num2 = 1_001_100
var num3 = 100_1_1_00
var num4 = 100_1_________1_00
println("num1==\(num1)") //num1==1001100
println("num2==\(num2)") //num2==1001100
println("num3==\(num3)") //num3==1001100
println("num4==\(num4)") //num4==1001100
//综上:可见三个变量输出的数字皆是 1001100,这是为何呢?
//原来:swift为了增加数字的可读性,允许在整型数字之间放置(_),当然这个(_)可以放置N个,但是不能以(_)开头,也可以放置在任何位置,如上,连续放置都没有问题
//当然了,如果还有其他有趣的,希望发现者可以分享分享
}
这其实是一个很有趣儿的赋值方式,也算是很新颖吧,至于还有没有其他的有趣儿的方式,现在小编还没有发现.嘻嘻
4.其他类型
//关于浮点数,并没有其他特别之处
//swift默认使用Double,而Double比Float精度更高,众所周知吧
/*
注意:
Double 代表64位的浮点数。当浮点数特别大,或者要求特别准确的时候使用。
Float代表32位的浮点数。当浮点数不需要64位准度的时候使用。
Double具有至少15位十进制数字的精度,而Float的精度可以小到6位十进制数字。
到底使用哪种浮点型取决于你代码中要使用的值的本质和范围
*/
浮点数/boolean类型的使用都差不多,这里就没有给出案例
一天一点.希望大家共同进步,thanks