二进制与位运算
大家知道,程序中的数据在内存中,都是以二进制的形式存在的。所以,内存中的数据一般都是0和1组成的序列。所谓位运算就是直接对整数在内存中补码的二进制位进行操作。直接对二进制位进行操作,使得位运算比普通的运算操作效率要高。
关于位运算的操作分为:与(and),或(or),取反(not),异或(xor),左移(shl),右移(shr/sar)等几种运算,它们共同构成了C语言中的位运算操作。
程序中的数据在内存中,都是以二进制的形式存在的。所以,内存中的数据一般都是0和1组成的序列。所谓位运算就是直接对整数在内存中的二进制位进行操作。直接对二进制位进行操作,使得位运算比普通的运算操作效率要高。
如下图所示,数据是用字节表示的,1个字节占8位。位运算就是直接对字节中的位进行运算。关于位运算的操作分为:与(and),或(or),取反(not),异或(xor),左移(shl),右移(shr/sar)等几种运算,它们共同构成了C语言中的位运算操作。
学习位运算的基础是掌握整数的补码存储与二进制表示方法,以及如何将一个十进制整数转化为二进制。详情请见第二章2.6/2.7节。