📦 归档笔记 — 原创建于 WizNote,仅作归档展示;观点以当年为准,非最新。

<< >> >>> 按位左移 按位右移 按位右移补零 概念详解

创建时间2019-02-22最后修改2019-02-22原位置/程序员成长之旅/Java学习/笔记/字数259
目录:程序员成长之旅/Java学习/笔记

左移和右移可以想象成工厂的滚动带

移动几位就位在相应方向丢失几位  举个例子

a=266439855

1111111000011000110010101111b  //这里的b代表byte所以 所指二进制

如果我们向左移动一位就是

1111111000011000110010101111b

最左侧值1 丢失 也就是111111000011000110010101111b

左移2位

1111111000011000110010101111b 也就是11111000011000110010101111b

左移8位

1111111000011000110010101111b  也就是000011000110010101111b

左移24位

1111111000011000110010101111b 也就是1111b

======================================================================

相同的 右移也是如此

a=266439855

1111111000011000110010101111b

如果右移一位就是

1111111000011000110010101111b

最右侧一位丢失 也就是111111100001100011001010111b

右移2位

111111100001100011001010111**1b 就是11111110000110001100101011b

右移8位

1111111000011000110010101111b 就是11111110000110001100b

右移24位

11111110000110001100**10101111b 就是1111b

=======================================================================

右移补零 顾名思义 就是在原有的按位右移基础上 在左侧补相应的0

a=266439855

1111111000011000110010101111b

如果右移一位就是

1111111000011000110010101111b

最右侧一位丢失 也就是0111111100001100011001010111b

右移2位

111111100001100011001010111**1b 就是0011111110000110001100101011b

右移8位

1111111000011000110010101111b 就是0000000011111110000110001100b

右移24位

11111110000110001100**10101111b 就是0000000000000000000000001111b