C语言左移右移

来源:互联网 发布:英雄之刃 网页游戏mac 编辑:程序博客网 时间:2024/05/22 00:18

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

原创粉丝点击