欢迎来到代码驿站!

C代码

当前位置:首页 > 软件编程 > C代码

关于移位操作的一点重要说明

时间:2020-11-12 07:54:34|栏目:C代码|点击:

我们有下面的测试代码:

#include <iostream>
using namespace std;


int main()
{
  int num1=7;
  cout<<"num1(7)<<2: "<<(num1<<2)<<endl;
  cout<<"num1(7)>>2: "<<(num1>>2)<<endl;
  int num2=-7;
  cout<<"num2(-7)<<2: "<<(num2<<2)<<endl;
  cout<<"num2(-7)>>1: "<<(num2>>1)<<endl;
  cout<<"num2(-7)>>2: "<<(num2>>2)<<endl;
  return 0;
}

 

 对于正数的移位操作:

7的二进制码为0111   

当左移2位时(右边补0):11100 十进制28

当右移2位时(左边补0):001    十进制1

 

-7的二进制码1111    

当左移两位时:111100(最高位为符号位) 十进制-28


当右移1位时 二进制码为1111 取反加一为补码 1001,再右移1位为0100 加上符号位为-4

当右移2位时  二进制码为1111 取反加一为补码 1001,再右移2位为0010 加上符号位为-2

上一篇:Linux中使用VS Code编译调试C++项目详解

栏    目:C代码

下一篇:递归删除二叉树中以x为根的子树

本文标题:关于移位操作的一点重要说明

本文地址:http://www.codeinn.net/misctech/21606.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有