C/C++的移位(32位CPU)
来源:互联网 发布:java中final 编辑:程序博客网 时间:2024/05/28 23:12
一、左移
例1:
若 int i = 0x400000000;// 0100...00(32位)
执行 i = i << 1;
则 i = 0x80000000;// 1000...00(32位)
可以看到i的符号位被设置为1,即 i = -2147483648
再执行 i = i << 1;
则 i = 0;// 000...00(32位)
*注: C语言的左移操作采用了丢弃最高位的处理方法。
例2:
若 unsigned i = 0x40000000;// 0100...00(32位)
i = i << 1;
则 i = 2147483648// 1000...00(32位)
再执行 i = i << 1;
则 i = 0; // 000...00(32位)
二、右移
例1:
若 int i = 0x80000000;// 1000...000(32位)
执行 i = i >> 1;
则 i = 0xC0000000;// 1100...00(32位)
再执行i = i >> 1;
则 i = 0xE0000000;// 1110...00(32位)
*注: C语言的右移操作采用了符号位参与移位的方式,对于正数进行补0,负数补1。
例2:
若 unsigned i = 0x80000000;
i = i >> 1;
则 i = 0x40000000;
再执行 i = i >> 1;
则 i = 0x20000000;
- C/C++的移位(32位CPU)
- C/C++位的移位操作
- C语言循环移位及位操作
- C语言位运算实现循环移位
- 在Windows下测试CPU是32位还是64位的C代码
- C 移位
- c语言的移位问题
- C语言的移位运算
- c 语言移位的优先级
- 32位cpu全局描述符表设置c语言的经典实现
- C++/C移位操作
- C 二进制输出 移位 改变某个位为0
- 每天一看---c中的位级运算、逻辑运算、移位运算
- 如何在C语言使用位运算实现循环移位
- 在C语言使用位运算实现循环移位
- Objective-C位运算符-向左移位运算符
- Objective-C位运算符-向右移位运算符
- 如何在C语言使用位运算实现循环移位
- java中的InputStream、OutputStream以及Reader、Writer
- NYOJ-画图822
- LVS+Keepalived构建高可用负载均衡(测试篇)
- IOS程序启动原理及其相关内容
- ubuntu初始化root密码
- C/C++的移位(32位CPU)
- 获取内核配置文件的两种方法
- ReactOS分析CriticalSection
- NYOJ-最小K个数之和
- 配置篇------lvs+keepalive搭建高可用的负载均衡
- 在MyEclipse中配置android开发环境
- NYOJ-判断三角形
- 接上 详细配置
- LAMP环境搭建--学习笔记