C++中左移右总结
来源:互联网 发布:淘宝店铺层级的排名 编辑:程序博客网 时间:2024/06/02 02:48
移位运算包含“逻辑移位”(logical shift)和“算术移位”(arithmetic shift)。
逻辑移位:移出去的位丢弃,空缺位(vacant bit)用 0填充。
算术移位:移出去的位丢弃,空缺位(vacant bit)用“符号位”来填充,所以一般用在右移运算中。
C++中,整数分有符号数和无符号数两种,对于这两种数做左移、右移运算,稍有区别:
1、如果是无符号数:不管是左移还是右移都是“逻辑移位”
2、如果是有符号数:
1)如果是做左移运算,那么做的是“逻辑移位”,同 1中无符号数的左移。
2)如果是做右移运算,那么做的是“算术移位”。
#include "stdafx.h"
#include <iostream>
#include <limits>
using namespace std;
int _tmain(int argc,_TCHAR* argv[])
{
//a=0xFFFFFFFF;
unsigned int a=numeric_limits<unsignedint>::max();
cout<<hex<<(a>>4)<<endl; //The Result is0X0FFFFFFF;
unsigned int b=0x8FFFFFFF;
cout<<hex<<(b<<4)<<endl; //The Result is0XFFFFFFF0;
int c=-1;
cout<<hex<<(c>>4)<<endl; //The Result is0xFFFFFFFF,also -1;
//c=0x10000000;
intd=numeric_limits<int>::min();
cout<<hex<<(d<<4)<<endl; //The Result is 0;
return 0;
}
根据上面例子仔细琢磨一下。
- C总结
- C 总结
- 【C++】总结
- 【C#】总结
- C---------------------总结
- c总结
- C#--总结
- c 总结
- c总结
- C总结
- C 总结
- 【总结】C语言总结!!!
- 数据类型总结 (C++,C#)
- [C语言]C总结
- 数据类型总结(C++,C#)
- 【C/C++】排序总结
- C/C++/VC随机数总结
- 【C/C++】realloc使用总结
- android reboot cause
- Lucene小练6(复习searcher)
- oracle数据库的同义词Synonym与dblink关联,从而可以直接查询远程数据库的表,不用指定用户和@指定dblink名称
- 整理一系列优秀的Android开发源码
- Oracle的instr函数使用
- C++中左移右总结
- 改写ListView 实现加载本地图片 非 id
- Telnet使用小结(window7)
- oracle存储过程
- 12个有趣的C语言面试题
- c++ 判断第几天 源码(控制台)
- 按钮手动绑定事件处理
- 元元模型(Meta Object Facility)的个人理解
- UIEdgeInsetsMake的作用