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

我们有下面的测试代码:

#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

以上就是小编为大家带来的关于移位操作的一点重要说明全部内容了,希望大家多多支持我们~

(0)

相关推荐

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

    我们有下面的测试代码: #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;

  • 关于大型页游后端管理系统的一点经验和个人见解

    前言: 做过游戏开发的人都知道,端游可以用c++,页游可以用sl或者as3,鉴于这段时间一直在看网页游戏开发的知识,所以关于游戏开发,我有一点自己的见解.就拿as3的网页游戏,一般游戏开发前端可以用as3做前端,后端用erlang,不了解这两种东西的朋友可以百度或者google一下.然后游戏数据管理和交互怎么呢!请看我下面分析! 本文主要内容: 前言 游戏数据交互 后端数据管理总结 一个简单的demo 游戏数据交互 一般一个大型的网页游戏有一个或者多个数据库以上,这些数据库内部有大量的数据表,表

  • 关于学习 Flex 的一点建议(转载)

    Flex是什么?RIA(Rich Internet Applications).Flex 是 Macromedia发布的presentation server(展现服务),它是java web container或者.net server的一个应用,根据.mxml文件(纯粹的xml描述文件和actionscript)产生相应得.swf文件,传送到客户端,由客户端的flash player或者shockwave player解释执行,给用户以丰富的客户体验.说这么多,还不如看实例: 苹果树下:ht

  • sqlserver和oracle中对datetime进行条件查询的一点区别小结

    首先,看一下sql server,之前我们都通过前台用户选择一个起始时间和一个结束时间(以日为最小单位),然后来作为条件进行查询,如果直接通过"between starttime and endtime"来作为条件的话,发现会自动将"2009-06-17"转化为" 2009-06-17 00:00:00",于是如下查询条件" between '2009-06-16' and '2009-06-17'",只能得到16日的数据,1

  • java基于移位操作实现二进制处理的方法示例

    本文实例讲述了java基于移位操作实现二进制处理的方法.分享给大家供大家参考,具体如下: /** * @author openks * @since 2013-9-21 移位操作实例 */ public class TestDisplacement { /** * @param args */ public static void main(String[] args) { // 十进制数字2向左移3位 即 二进制的10向左移3位即10000 转换为十进制为2的4次方 即16 System.ou

  • 分享XmlHttpRequest调用Webservice的一点心得

    首先,因为JSON对于JS的便利性,考虑通过JSON来请求和返回数据.在JS中实例化一个xmlHttpRequest对象,然后根据网上的说明POST的地址为:asmx页面地址/Web方法名.在RequestHeader中设置Content-Type为application/json; charset=utf-8,SOAPAction设为Web方法名.Web方法的参数用JSON格式send出去. 代码如下: 复制代码 代码如下: function getXmlHttp() { var xmlHtt

  • HttpRequest的QueryString属性 的一点认识

    如: 当然我们一般都是按照提示来把framework版本设置2.0来解决.为什么可以这么解决了,还有没有其它的解决方法了. 先让我们看看QueryString的源代码吧: 复制代码 代码如下: public NameValueCollection QueryString { get { if (this._queryString == null) { this._queryString = new HttpValueCollection(); if (this._wr != null) { th

  • PHP 实例化类的一点摘记

    下面是调用一个模型(Module)的函数.这个函数的基本功能是指定一个模型(抽象化为类)的名称,然后它会在模型目录下面寻找这个类的脚本实例化以后返回.这样的做法有一点好处就是载入和实例化是自动的,你可以获得最大的灵活性.下面请看下面的代码,它并不长而且不复杂: function &load_class($class_name, $param = null, $instantiate = true) {     static $objects = array(); $class_name = uc

  • 关于memcpy和memmove的一点重要说明

    今天看到书上降到memcpy和memmove的区别才突然发现原来两者之间有如此区别,以前只知道这两个函数是 实现同样的功能,没有接触到其不同. memcpy和memmove在MSDN的定义如下: 从两者的声明来看的确没有区别,我们来看这样一个例子 当我们需要将char* src="abcde"这个字符串全部copy到dest中然而src与dest在内存中大概是这样存在的: 内存地址   低------>高 src dest 1 2 3 4 5 6 [ a ][ b ][ c ][

  • Asp中Server.ScriptTimeOut属性需要注意的一点分析

    这个属性的服务器默认值是90,单位是秒,我们可以通过这样的代码输出这个值: 复制代码 代码如下: <% Response.Write Server.ScriptTimeOut Response.Write " Http://www.jb51.net" %> 由于IIS默认的ScriptTimeout值是90秒(其实是在IIS Metabase中设置的),所以我们可以在我们的程序中改变这个值: 复制代码 代码如下: <%Server.ScriptTimeOut=100%

随机推荐