zoukankan      html  css  js  c++  java
  • 关于有符号数移位的一篇帖子

    请问有符号位的移位,最高位是否会被补1,从而成为负数?
    比如signed int a = 320;
    a>>1=?
    

     ...

    不会。
    随着移位,正数不断填零,负数会不断的填1。
    

     ...

    负数填1是保证 还是负数
    正数填0 保证还是正数 

    ...

    给楼主一个建议,做位移之前,通通强制转换成无符号型的,这样结果就可控了…… 
    

     ...

    移位 要看是什么数,和码制,这里整体讲一下:
    
    一、逻辑移位(无符号数):不管原码、反码、补码,左移和右移一律补"0"
    
    二、算术移位(有符号数):
                      (1):真值为正数:不管原码、反码、补码,左移和右移一律补"0"
             
                    (2):真值为负数:原码:补"0"
                                   反码:补"1"
                                   补码:左移补"0",右移补"1"
    可以参考唐硕飞的计算机组成原理。
    

    ...

    一般处理器都区分算术右移和逻辑右移指令,倒是算术左移和逻辑左移功能是一样的,有可能将一个负数左移成正数 
    

    bbs.csdn.net/topics/320218025 

  • 相关阅读:
    逻辑回归
    异常
    内部类
    接口
    多态
    final关键字(最终的)
    不能被继承的父类成员
    对象初始化的过程
    方法重写
    abstract关键字
  • 原文地址:https://www.cnblogs.com/weiweishuo/p/3099090.html
Copyright © 2011-2022 走看看