美文网首页
溢出运算符

溢出运算符

作者: anyurchao | 来源:发表于2016-07-25 11:41 被阅读170次

Swift不允许整型变量或者常量被赋值一个超出其表数范围的数值,如果试图这么干,则会出现运行时错误:

屏幕快照 2016-07-25 上午11.37.24.png

如果希望数据溢出时Swift程序只是对一出的数据位进行截断而不是导致错误,则可以使用以&开头的溢出运算符:
溢出加法 &+
溢出减法 &-
溢出乘法 &*
溢出除法 &/
溢出求余 &%

值的上溢
下面例子使用了溢出加法&+来处理无符号整数的上溢出:

屏幕快照 2016-07-25 上午11.38.24.png

max用Int8所能承载的最大值255(二进制11111111),然后用&+加1。然后UInt8就无法表达这个新值的二进制了,也就导致了这个新值上溢出了,大家可以看下图。溢出后,新值在UInt8的承载范围内的那部分是00000000,也就是0。

屏幕快照 2016-07-25 上午11.39.10.png

值的下溢
数值也有可能因为太小而越界:

屏幕快照 2016-07-25 上午11.39.46.png

UInt8的最小值是0(二进制为00000000)。使用&-进行溢出减1,就会得到二进制的11111111即十进制的255。

屏幕快照 2016-07-25 上午11.40.12.png

除零溢出
整数和整数在进行除法或者求余运算时,如果被除数为0,程序将会出错:

屏幕快照 2016-07-25 上午11.40.49.png

相关文章

  • swift运算符

    溢出运算符 Swift的算数运算符出现溢出时会抛出运行时错误 Swift有溢出运算符(&+、&-、&*),用来支持...

  • Swift 高级运算符 ⑬

    1. 溢出运算符 Swift 的算数运算符出现溢出时,会抛出运行时错误 Swift 有溢出运算符(&+、&-、&*...

  • 17-Swift高级运算符

    1.溢出运算符 Swift的算数运算符出现溢出时会抛出运行时错误 Swift有溢出运算符(&+、&-、&*),用来...

  • 高级运算符

    溢出运算符 Swift的算数运算符出现溢出时会抛出运行时错误Swift有溢出运算符(&+、&-、&*),用来支持溢...

  • Advanced Operators

    高级运算符。不同于C,swfit中的运算符默认是不可溢出的,溢出会报错。你可以使用&加运算符表示可溢出运算符。 按...

  • Swift基础12(高级运算符)

    溢出运算符(Overflow Operator) swift的算数运算符出现溢出的时会抛出错误 我们可以使用溢出运...

  • 高级运算符

    溢出运算符(Overflow Operator) Swift的算数运算符出现溢出时会抛出运行时错误 Swift又溢...

  • iOS-Swift-高级运算符

    一. 溢出运算符(Overflow Operator) Swift的算数运算符出现溢出时会抛出运行时错误 Swif...

  • Swift进阶(十四)高级运算符

    溢出运算符(Overflow Operator) Swift的算术运算符出现溢出时会抛出运行时错误 Swift有溢...

  • 高级运算符

    溢出运算符(Overflow Operator) Swift的算数运算符出现溢出时会抛出运行时错误 Swift有溢...

网友评论

      本文标题:溢出运算符

      本文链接:https://www.haomeiwen.com/subject/bimgjttx.html