zoukankan      html  css  js  c++  java
  • 2.2.3移位运算

    移位运算

    image-20200830143536125

    1.1算数移位

    • 源码的算术移位:符号位置保持不变,仅对数值进行移位

    右移:高位补0,低位舍弃。若舍弃的位=0,则相当于/2,若舍弃的不等于0,就会丢失精度

    把0000101.0 向右移动一位 000010.1 小数点后面的会1被舍弃,导致精度不足

    左移:低位补0,高位舍弃,若舍弃的位=0,相当于*2,若舍弃的位不等于0,则会严重丢失精度

    • 反码的算术移位
    image-20200830152303354

    正数的反码与原码相同

    右移:高位补0,低位舍弃 左移:低位补0,高位舍弃

    负数的反码与原码相反 右移:高位补1,低位舍弃 左移:低位补0,高位舍弃

    • 补码的算术移位

    正数的补码 右移:高位补0,低位舍弃 左移:低位补0,高位舍弃

    负数的补码=反码末尾加1 右移:高位补1,低位舍弃 左移:低位补0,高位舍弃

    image-20200830153735266

    左移相当于x2,右移相当于除2

    因为位数有限,无法用算数移位精确的等效乘除法

    image-20200830154056859

    1.2 逻辑移位

    逻辑右移: 高位补0,低位舍弃

    逻辑左移:低位补0,高位舍弃

    Eg:在颜色代码中RGB(102,139,139) 二进制代表(01100110,100001011,10001011)

    image-20200830155404409

    1.3 循环移位

    在做一些运算时,数值会溢出,多出一个进位

    在进行循环移位时,右移会将原本的进位放在末尾的位置,新进的溢出位,代替原本的进位

    image-20200830155924784

    变成

    image-20200830155959348

  • 相关阅读:
    A1141. PAT Ranking of Institutions
    A1140. Look-and-say Sequence
    A1139. First Contact
    A1138. Postorder Traversal
    A1137. Final Grading
    A1136. Delayed Palindrome
    A1135. Is It A Red-Black Tree
    A1134. Vertex Cover
    A1133. Splitting A Linked List
    layer.open打开iframe页面的调用父页面方法及关闭
  • 原文地址:https://www.cnblogs.com/cg-ww/p/14546497.html
Copyright © 2011-2022 走看看