- 在进行如何位运算之前,首先应将任何表达式的结果转换成二进制,计算完之后再转换成原来的进制即可得到运算结果,不能对浮点数进位运算。
按位与(&):两个位都为1,结果才为1。
作用:
●清零:要将某一位清零,可将相应为设置为0.其他位为1,再使用按位与运算。
●取指定位:想取某一位,可将相应的位设置为1,其他位为0,再使用按位与运算。按位或(|):有一个位为1,结果就为1。
作用:将某位设置为1:可以将相应的位设置为1,再使用按位或运算。- 按位异或(^):两个位不同,结果为1,否则为0。
任何数与自己异或都为0,任何数与0异或值不变。
作用:
●翻转位,要将某一位翻转,可将相应的位设置为1,第一次用按位异或运算,可将其翻转,第二次用按位异或又可将其翻转回来。
●不用临时变量交换两个变量的值。a=a^b;b=b^a;a=a^b; - 按位取反(~):将每一位都取反。
- 左移(<<)
格式:二进制 << 要移动的位数
作用:将二进制左移一定的位数,最右边补0,任何一位移出左边界,自动丢弃。不越界的左移一位相当于变量值乘以2。 - 右移(>>)
格式:二进制 >> 要移动的位数
作用:将二进制右移一定的位数,最左边补0(或1,如果要移的数是负数,最左边符号位为1,右移的时候左边自动补1),任何一位移出右边界,自动丢弃。不越界的右移相当于让变量除以2。
位运算的优先级:~ 高于 << >> 高于 & 高于 ^ 高于 |
C语言入门----位运算
最新推荐文章于 2024-08-16 09:27:45 发布