位运算

左移运算 <<
a << ba*(2 的 b 次方)
3 << 2,则是将数字 3 左移 2 位3*(2 的 2 次方)
计算过程:
3 << 2 首先把 3 转换为二进制数字 0000 0011,然后把该数字高位(左侧)的两个零移出,其他的数字都朝左平移 2 位,最后在低位(右侧)的两个空位补零。则得到的最终结果是 0000 1100,则转换为十进制是 12。
数学意义:
在数字没有溢出的前提下,对于正数和负数,左移一位都相当于乘以 2 的 1 次方,左移 n 位就相当于乘以 2 的 n 次方。
& 与运算
参加运算的两个数据,按二进制位进行“与”运算。
运算规则:0&0=0;0&1=0;1&0=0;1&1=1;
即:两位同时为“1”,结果才为“1”,否则为 0
例如:3&5 即 0000 0011 & 0000 0101 = 0000 0001 因此,3&5 的值得 1。
十进制转二进制
用 2 整除十进制整数,可以得到一个商和余数;再用 2 去除商,又会得到一个商和余数,如此进行,直到商为小于 1 时为止,然后把先得到的余数作为二进制数的低位有效位,后得到的余数作为二进制数的高位有效位,依次排列起来。
- Post title:位运算
- Post author:xxxixxxx
- Create time:2021-02-28 21:12:00
- Post link:https://xxxixxx.github.io/2021/02/28/2000-位运算/
- Copyright Notice:All articles in this blog are licensed under BY-NC-SA unless stating additionally.
Comments