^ & || >> << ~ 基础 (大家改正)

王朝vc·作者佚名  2006-01-09
宽屏版  字体: |||超大  

a ^ b a|| b a & b a b

1 1 0 1 0

0 1 1 1 1

0 0 0 0 0

1 1 0 0 1

101000001

~101000001

结果 010111110

正数符号位是0,负数符号位是1

左移一位 可以等价 x2

右移一位 可以等价 /2

正数来说,最高位是0,其余各位代表数值本身的二进制数;

对于负数来说,把该数的绝对值的补码按位取反,然后对整个数+1,取得该数的补码。如-1的补码为11111111,-1的绝对值补码是00000001,按位取反11111110,再加1,11111111

左移运算符(<<)会左操作数向左迁移,迁移的位数由右操作数决定(左移后,低位补0)a=a<<2,使a的各个二进制位左移2位,右补0,若a=00001111则a<<2=00111100,高位左移后溢出的位舍弃掉了在不产生溢出的情况下,左移一位相当于乘2,用这种方法来实现乘法,要比乘法运算快很多

右移运算符先会采用一种叫符号扩展的措施:如果原值为正数,高位补0;如果原值为负数,则高位补1

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有