位运算的左移和右移为什么对应了十进制的乘法和除法你,可以解释的生动形象一点吗?
比如 4 的二进制是 100
乘2 十进制是8,二进制1000,对应左移了一位
除2 十进制是2,二进制10;对应右移了一位
十进制的情况下,左移和右移不就是对应乘法和除法么。例如 23左移一位就相当于在十位补零 得到230。不就是乘法吗?除法同理。
位运算左移和右移只不过底数从 十进制的10变为了2
位运算左移和右移,二进制的基数为2, 所以对于它的进位或者退位就是 乘以2 或者除以2;
类似十进制基数为10 ,所以 十进制的“123” 的位权关系就是 123 = 110^2 +210^1 +310^0;
十进制的“123” 乘以10 则得到 1230 = 110^3 +210^2 +310^1+010^0; 同时也是10进制下的左移;
同理位运算左移和右移,二进制的基数为2, 例如 二进制的 “b0010”(十进制为2)(b0010=12^1+02^0)左移1位,得“b0100”(十进制为4)(b0100=12^2+02^1+02^0),则相当于 左移1位,数值乘以2.
右移同理。