• 移位运算


    计算机中的数都是以二进制存储,位运算是直接对二进制数进行操作的运算,它的速度非常快。

    移位运算是其中比较常用的。

    1. 移位运算分为 逻辑移位 和 算术移位。

    逻辑移位,是不管往哪边移动,都用0来补齐。

    算术移位:算术左移,用0补齐。算术右移,用符号位来补齐。

    注意:将移位区分为逻辑移位和算术移位的原因是,不希望移位运算影响数本来的正负性。

    2. 移位运算最常见用法,做”乘除法“。

    无论是神马类型的移位,记住一点,【左移乘法,右移除法】

    x<<n: x·2n  ;  x>>n:x/2n

    use 8 unsigned bits to represent number 5 : 00001001

    5>>1:   00000101 ---> 00000010 :  5 ---> 2   【右移1位】相当于【除以2】

    5<<1:   00000101 ---> 00001010 :  5 ---> 10  【左移1位】相当于【乘以2】

    3. 数在计算机中用补码存储。

    牢记这一点! 正数的补码就是原码;负数的补码是其正数的反码+1

    Ex.  Find the two’s complement representation of –6

    Step1: find binary representation in 8 bits

      6 = 00000110

     Step 2: Complement the entire positive number, and then add one

                                     00000110  

    (complemented)  ->    11111001

    (add one)  ->  +                      1

                                     11111010

    So:  -6 = 11111010  (in 2's complement form, using any of above methods)

    另一种方法是,

    Scan binary representation from right too left, find first one bit, from low-order (right) end, and complement the remaining pattern to the left.

                                          00000110  

    (left complemented)  -->  11111010

  • 相关阅读:
    关于C++中操作符重载的疑问 :四个运算符=, ->, [], ()不可以重载为全局函数(友员函数)...
    linux内核移植过程问题总结
    关于开发板用tftp下载失败分析
    阿里云ECS下安装的MySQL无法远程连接?
    uva729
    使用 Confluence 6 服务器移动应用
    Confluence 6 移动浏览查看任务
    Confluence 6 移动浏览查看通知
    Confluence 6 移动浏览查看页面,博客和评论
    Confluence 6 移动浏览搜索内容和人
  • 原文地址:https://www.cnblogs.com/renrenbinbin/p/4337552.html
Copyright © 2020-2023  润新知