zoukankan      html  css  js  c++  java
  • 有符号数移位

    在左移位中,值最左边的几位被丢弃,右边多出来的几个空位则由0补齐。
    但是,右移位操作存在一个左移位操作不曾面临的问题:从左边移入的位,可以选择两种方案。
    一种是逻辑移位,左边移入的位用0填充
    一种是算数移位,左边移入的位由原先该值的符号位决定符号位为1则移入的位均为1,符号位为0则移入的为均为0
    这样就能够保持原数的正负形式不变。

    比如 值10010110,
    逻辑右移两位:00100101
    算数右移移位:11100101

    算数左移和逻辑左移是相同的,都是右边多出来的填充0(需要主要不要溢出),它们只在右移时不同,而只有当操作数是负数时才不一样。

    为什么说使用了有符号数右移操作,就不可移植了?

    标准说明无符号值的所有移位操作是采用逻辑移位,但对于有符号值,到底时采用逻辑移位还是算数移位取决与编译器,不能保证所有的编译器采用同样的方式。因此,一个程序如果使用的有符号的右移位操作,它是不可移植的。

    懒惰不会让你一下子跌到 但会在不知不觉中减少你的收获; 勤奋也不会让你一夜成功 但会在不知不觉中积累你的成果 越努力,越幸运。
  • 相关阅读:
    了解jQuery
    了解JavaScript
    了解DOM
    了解CSS
    UICollectionViewCell点击高亮效果(附带效果GIF)
    产品迭代缓慢的原因
    了解Web的相关知识
    HTML常用标签
    HTML常用标签效果展示
    了解数据产品经理
  • 原文地址:https://www.cnblogs.com/Rainingday/p/14611794.html
Copyright © 2011-2022 走看看