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

Swift 基本数据类型<整型/浮点型>

2014-11-11 09:45 375 查看
一天一点,学习永不止步!

关于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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: