【前言】
大家都知道程序中的所有数在计算机的存储就是 0和1,都是以二进制的形式存储的。位运算就是直接对内存中的二进制位进行操作。C语言的位运算操作对象只能是整型或字符型数据。【6种位运算】
1.& 按位与(按位乘)相应二进制位都为1,结果为1。二进制位有0,则结果为0。
作用:清零。
2.| 按位或(按位加)
相应二进制位有1,则结果为1。二进制位全为0,则结果为0。
作用:可将特定位置位1.
3.^ 按位异或运算
相应二进制位相同为0,相异为1。
4.~ 按位取反
单目运算符,按位取反后0变1,1变0。
对一个数按位取反得到的值为该数加1后,再乘负一。
16个1按位取反为16个零,加1为1,乘-1,最后得-1。
5.<< 按位左移运算
格式:数<<n
功能:将二进制位按位依次序左移n位。相当于数*2的n次方。
6.>> 按位右移运算
格式:数>>n
功能:将二进制位按位依次序右移n位。相当于数/2的n次方。如果为负数并不能被2整除,得到的商加1.
举个栗子
040<<1
040为八进制(首个0为八进制标志),八进制转换为二进制。一位对三位为100 000 。
左移一位,相当于末位补0, 为001 000 000 ,二进制转为八进制为100。