逻辑移位和算术移位
来源:互联网 发布:山东淘宝商城 编辑:程序博客网 时间:2024/05/16 04:53
逻辑移位:移位产生的空位由0来补充,比如11100右移移位变为01110
算术左移同逻辑移位。
算术右移有两种可选的方案:左边移入的位由0补充,或者由符号位来补充,这两种实现依赖于编译器。11100右移移位结果可能是01110或者11110。
在程序中尽量不使用有符号数的右移操作,这样会使得程序的可移植性变差。
对于有符号数右移,下面的代码可以判断编译器采用的逻辑右移还是算术右移
# include <iostream># include <cstdlib>using namespace std;int main(){int a=0xfffffffe;a>>=1;if(a==-1)cout<<"算术移位"<<endl;elsecout<<"逻辑移位"<<endl;system("pause");return 0;}由于有符号数左移操作会把符号位移掉,然后在最右边加上0,这可能会使得一个负数变成一个正数。
下面的程序说明了这一点。
# include <iostream># include <cstdlib>using namespace std;int main(){int a=0x80000001; //a<0cout<<a<<endl;a<<=1;cout<<a<<endl; //a>0system("pause");return 0;}
0 0
- 算术移位和逻辑移位
- 逻辑移位和算术移位
- 算术移位和逻辑移位
- 逻辑移位和算术移位
- 算术移位和逻辑移位
- 逻辑移位 算术移位
- 什么叫逻辑移位和算术移位
- 算术移位和逻辑移位实现分析
- 算术移位和逻辑移位实现分析
- 逻辑移位与算术移位
- 算术移位与逻辑移位
- 算术与逻辑移位
- 从头认识C—算术移位和逻辑移位
- (ZT)算术移位和逻辑移位的区别
- 【C语言/C++】算术移位和逻辑移位
- 逻辑移位与算术移位的区别
- 逻辑移位与算术移位的区别
- 逻辑移位与算术移位的区别
- Win7安装 SQL Server2008图解
- http://www.doudoutxt.com/files/article/51465/657qr578.html
- 源Java应用服务器
- 黑马程序员22——银行业务调度系统
- 微信创业,一天5600销量经验分享
- 逻辑移位和算术移位
- ACM 简单DP NOIP2010提高组 乌龟棋
- codeforces 460C - Present 二分加模拟
- android选择图片或拍照图片上传到服务器(包括上传参数)
- Leetcode: Longest Valid Parentheses
- ubuntu 12.04下手动安装jdk6
- 什么是功能性材料印刷?
- Dynamics AX 清空供应商余额
- Windows server 2008 64位系统无法连接 Access 数据库