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

一天一点,学习永不止步!

关于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



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值