C语言左移右移
2013-09-24 22:31
253 查看
int len = 3;
int a = 2;
int leng = a<<len; //相当于a*2^len
printf("%d", leng); //输出结果是16
int len = 3; //二进制表示为00000011
int leng = len<<1; //左移一位,变成00000110,leng = 6
int len = 3;
int leng = len >> 1; //右移一位,变成00000001,leng = 1
int len = -3; //二进制原码为10000011,补码=反码+1=11111101
int leng = len <<1; //左移一位,变成11111010,再变成补码=反码+1=10000110,leng = -6
int len = -3;
int leng = len >>1; //右移一位,变成11111110,再变成补码=反码+1=10000010,leng = -2
具体参照下文章
http://www.cnblogs.com/myblesh/articles/2431806.html
int a = 2;
int leng = a<<len; //相当于a*2^len
printf("%d", leng); //输出结果是16
int len = 3; //二进制表示为00000011
int leng = len<<1; //左移一位,变成00000110,leng = 6
int len = 3;
int leng = len >> 1; //右移一位,变成00000001,leng = 1
int len = -3; //二进制原码为10000011,补码=反码+1=11111101
int leng = len <<1; //左移一位,变成11111010,再变成补码=反码+1=10000110,leng = -6
int len = -3;
int leng = len >>1; //右移一位,变成11111110,再变成补码=反码+1=10000010,leng = -2
具体参照下文章
http://www.cnblogs.com/myblesh/articles/2431806.html
相关文章推荐
- 深入C++中API的问题详解
- 基于C语言string函数的详解
- 探讨C语言的那些小秘密之断言
- 深入探讨C语言中局部变量与全局变量在内存中的存放位置
- 基于C语言fflush()函数的使用详解
- 关于C语言除0引发的思考
- 深入分析C中不安全的sprintf与strcpy
- C中实现矩阵乘法的一种高效的方法
- c语言printf函数的使用详解
- C语言学籍管理系统源代码
- 浅析C语言中的sizeof
- c语言内存泄露示例解析
- 浅析C语言位域和位段
- 解析C语言中位字段内存分配的问题
- 学生成绩管理系统C语言代码实现
- 基于C语言sprintf函数的深入理解
- C语言中函数声明与调用问题
- 基于malloc与free函数的实现代码及分析
- 关于c语言指针的两处小tip分享
- 解析c中stdout与stderr容易忽视的一些细节