赵走x博客
网站访问量:151533
首页
书籍
软件
工具
古诗词
搜索
登录
7、数学运算符
6、字符串
5、类型
4、常量
3、声明的威力
2、开始探索 Swift
1、Swift简介
7、数学运算符
资源编号:76620
Switch基础教程第二版
书籍
热度:159
Swift很擅长做数学运算。前面介绍过String类型可使用加号来拼接字符串,但加号并非只能 用于拼接字符串,它还是加法运算的通用表示方式,而现在正是探索Swift数学运算功能的好时机。 来看一些执行算术运算的数学表达式: ``` 30> let addition = 2 + 2 addition: Int = 4 31> let subtraction = 4 - 3 subtraction: Int = 1 32> let multiplication = 10 * 5 multiplication: Int = 50 33> let division = 24 / 6 division: Int = 4 34> ``` 这里演示了四种基本运算:加(+)、减()、乘(*)、除(/)。Swift提供的结果符合预期,它 给常量指定的类型(Int)也符合预期。同样,Swift根据等号右边的值推断出这些常量的类型为Int。 还可使用%运算符来执行求模运算,它返回除法运算的余数: ``` 34> let modulo = 23 % 4 modulo: Int = 3 35> ``` 另外,加号和减号还可用作单目运算符。在值前面加上加号意味着正数,加上减号意味着负数: ``` 36> var positiveNumber : Int = +33 positiveNumber: Int = 33 37> var negativeNumber : Int = -33 negativeNumber: Int = -33 38> ``` # 1.9.1 表达式 Swift全面支持数学表达式,包括标准的运算符优先级(按从左到右的顺序先执行乘法和除法 运算,再执行加法和减法运算): ``` 38> let r = 3 + 5 * 9 r: Int = 48 39> let g = (3 + 5) * 9 g: Int = 72 40> ``` 第38行先将5乘以9,再将结果加上3,而第39行将前两个值用括号括起来,因此先将这两个 值相加,再将结果与9相乘。Swift与其他现代语言一样按规范顺序执行数学运算。 # 1.9.2 混用不同的数值类型 如何混用小数和整数,结果如何呢? ``` 40> let anotherDivision = 48 / 5.0 anotherDivision: Double = 9.5999999999999996 41> ``` 这里将整数48除以小数5.0。 小数点提供了足够的线索, 让Swift将相应数字的类型视为 Double。结果常量anotherDivision的类型也被指定为Double。这里演示了Swift的类型提升概念: 将Int值48与一个Double值放在同一个表达式中时,它被提升为Double类型。同样,常量也被指定 为Double类型。这种规则必须牢记。 在同一个表达式中包含不同类型的数值时,总是将表达力较弱的类型提升为表达力较强的类 型。由于Double类型可表示Int值,而Int类型无法表示Double值,因此将Int值提升为Double值。 # 1.9.3 数值表示 在Swift中,可以多种方式表示数值。本章前面使用的都是最常见、最自然的表示方式:十进 制,即以10为底的计数法。下面来看看其他表示数值的方式。 1. 二进制、八进制和十六进制 如果你有编程经验,肯定遇到过以2、16甚至8为底的数字,它们分别被称为二进制、十六进 制和八进制。这些进位制在软件开发中经常会出现,根据它们本身的特性使用简捷记法很有帮助: ``` 41> let binaryNumber = 0b110011 binaryNumber: Int = 51 42> let octalNumber = 0o12 octalNumber: Int = 10 43> let hexadecimalNumber = 0x32 hexadecimalNumber: Int = 50 44> ``` 二进制数用前缀0b表示,八进制数字用0o表示,而十六进制数用0x表示。当然,没有前缀意 味着为十进制数。 2. 科学记数法 另一种表示数字的方法是科学记数法,这种记数法可简化大型小数的表示: 3. ``` 44> let scientificNotation = 4.434e-10 scientificNotation: Double = 0.00000000044339999999999999 45> ``` 其中e表示以10为底的指数,这里为4.434×10^-10^ 。 3. 大数字表示法 如果你曾坐在Mac计算机前数数字末尾有多少个0,以确定其量级,肯定会喜欢下面这种特 性。Swift支持下面这种方式表示大数,让其量级一目了然: ``` 45> let fiveMillion = 5_000_000 fiveMillion: Int = 5000000 46> ``` 下划线会被Swift忽略,但这些下划线对提高数字的可读性大有裨益。