美文网首页
小知识点总结

小知识点总结

作者: aksskas | 来源:发表于2017-11-05 16:47 被阅读0次

    最近看的东西比较杂,简要的对不太熟悉的东西做个记录,也对计算机基础知识做点回顾。

    运算符

    • 1.&*, &+, &-
    &+(_:_:)
    Returns the sum of the two given values, discarding any overflow.
    // 在不出现溢出的情况下,与普通的+运算符无差别,溢出时,不会报错,而是直接转成相应的溢出值
    
    // 例子
    let x: Int8 = 10 &+ 21  // x == 31 (未溢出)
    /*
     0000 1010   // 10的补码
     0001 0101   // 21的补码
     ---------------
     0001 1111   // 补码
     0001 1111   // 原码(31)
     */
    
    let y: Int8 = 100 &+ 121 // y == -35 (溢出)
    /*
     0110 0100   // 100的补码
     0111 1001   // 121的补码
     ---------------
     1101 1101   // 补码
     1101 1100   // 反码
     1010 0011   // 原码(-35)
     */
    

    &*,&-与上述意思相同

    • 2.~=
    ~=(_:_:)
    Returns a Boolean value indicating whether a value is included in a range.
    // 判断值是否在指定区间内,返回Bool值
    let chosenNumber = 3
    if 0..<10 ~= chosenNumber {
        print("\(chosenNumber) 在 [0,10)的区间内")
    }
    // 也可以配合Switch使用
    switch chosenNumber {
    case 0..<10:
        print("\(chosenNumber) 在 [0,10)的区间内")
    default:
        print("\(chosenNumber) 不在 [0,10)的区间内")
    }
    

    基础知识回顾

    • 1.原码,反码,补码
    总结起来有以下四点
    1. 正数的原码,补码,反码都相同
    2. 负数的反码是对原码除符号位外均取反
    3. 负数的补码是在反码的基础上+1
    4. 计算机都是以补码形式进行运算的
    
    • 2.位运算符
    & 按位与   
    1&1==1,1&0==0, 0&0==0
    
    | 按位或                 
    1|0==1, 1|1==1, 0|0==0
    
    ^ 按位异或
    0^0==0, 1^1==0, 1^0==1
    
    ~ 取反
    ~0==1, ~1==0
    
    << 左移
     a<<4,左移4位,高位丢弃,低位补0
    
    >> 右移(a>>4,右移4位)
    例如 a = 15, a>>2
    0000 1111  -> 0000 0011
    // 正数高位补0,低位丢弃
    // 负数高位补0/1由编译系统决定(很多系统规定补1),低位丢弃
    
    • 3.大小端模式
      大端小端模式是数据在内存中存储的两种方式
    以0x1234为例
    大端模式(Big-Endian):数据的低位存储在高内存地址中
    ----------------
    高地址    低地址
    ----------------
    0x34      0x12    
    ----------------
    小端模式(Little-Endian):数据的低位存储在低内存地址中
    ----------------
    高地址    低地址
    ----------------
    0x12      0x34   
    ----------------
    

    相关文章

      网友评论

          本文标题:小知识点总结

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