zoukankan      html  css  js  c++  java
  • 算数位移和逻辑位移

    算数位移和逻辑位移

    1.算数移位和逻辑移位

    • 左移规则 << : 溢出的高位丢弃,空出的低位补0,原低位数值按顺序左移到高位
    • 右移规则 << : 右移分为逻辑右移和算数右移,几乎所有的编译器都对有符号数使用算数右移,而对于无符号数必须用逻辑右移。
      1.逻辑右移:空出的高位补0,溢出的低位丢弃,原高位数值按顺序右移到低位;
      2.算数右移:空出的高位用符号位的副本填充,溢出的低位丢弃,高位数值按顺序右移到低位;
    操作 参数1 参数2
    x << 4(左移) [01100011] => [00110000] [10010101] => [01010000]
    x >> 4(逻辑右移) [01100011] => [00000110] [10010101] => [00001001]
    x >> 4(算术右移) [01100011] => [00000110] [10010101] => [11111001]
    • 正数逻辑右移和算数右移相同;负数逻辑右移和算数右移不同;

    2.C语言位移运算符

    位移类型 描述
    左移 << 高位丢弃,低位补0,低位数值左移动
    右移 >>(无符号) 高位补0,低位丢弃,高位数值右移动
    右移 >>(有符号) 其结果取决于机器,空出来的位置可用0填充,或用符号位的副本填充(参考C Primer Plus 第6版)

    3.C++语言位移运算符

    位移类型 描述
    左移 << 高位丢弃,低位补0,低位数值左移动
    右移 >>(无符号) 高位补0,低位丢弃,高位数值右移动
    右移 >>(有符号) 其结果取决于C++的实现,空出来的位置可用0填充,或用符号位的副本填充(参考C++ Primer Plus 第6版)
  • 相关阅读:
    docker使用阿里云Docker镜像库加速
    FastDFS文件系统(二) fastdfs和其他文件系统区别
    CentOS7—HAProxy安装与配置
    安装完CentOS 7 后必做的七件事
    让一个端口同时做两件事:http/https和ssh
    Hyper-v之利用差异磁盘快速创建多个虚拟机
    MySQL5.7安装与配置(YUM)
    CentOS7 配置阿里云yum源
    60款顶级大数据开源工具
    ubuntu设置分辨率
  • 原文地址:https://www.cnblogs.com/sillycuckoo/p/13770474.html
Copyright © 2011-2022 走看看