首页 > 编程知识 正文

二进制左移右移运算,算术左移和算术右移

时间:2023-05-05 07:34:01 阅读:59784 作者:1215

1 .向左移位。 如果左移的位数超过该数值类型的最大位数,编译器就会用左移的位数去除该类型的最大位数,用馀数进行移位。 舍弃最高位,用0补充最低位。 左移相当于乘法,左移一位相当于乘法2,左移二位相当于乘法4。 即,左移一位相当于2的n次幂。

例如:

int i=1,j=0x80000000; //int为32位;

i=i33; //332=1左移1位,I变为2

j=j33; //332=1左移一位,j变为0,舍去最高位

2 .对于有符号整数(例如,int型),右移位保持为已编码比特。 在已编码比特向右移位之后,正数的补数为零,负数的补数为一,即汇编语言中的算术向右移位,或者如果移位的比特数超过了模具的长度,则取馀数并移位馀数。 右移位对应于除法,右移位一位除以2,右移位二位除以4,即右移位数除以2的n次幂。

例如:

int i=0x80000000;

i=i1; //i的值不会变为0x40000000,而是oxc0000000

左移运算:将51,00000101左移1位,为00000010,为10D。 例如,如果54==5乘以2的4次方,则值为80。

右移运算:将51,00000101右移1位,为00001010,为2D。 例如,54==5除以2的4次方得到的值是0。

//0X表示十六进制数,0表示八进制数。

//二进制计算: 2的0次方2的1次方2的平方 2的n次方。

(/与运算)两真为真,两假为假,真伪为假。

//运算:两真为真,两假为假,真伪为真。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。