位运算介绍计算机是以补码形式存放的。它的表示如下: 正数的补码与原码相同; 负数的补码为:最高位为1,其余各位与原码的相应位按位取反,然后加1。 +9的补码为:00001001 -9的补码求解过程: 原码: 10001001 按位取反:11110110 加1: 11110111 所以-9的补码就为11110111。位运算的使用:(1) 按位与运算符(&)求9&10的结果。 9的补码为:00001001 10的补码为:00001010则9&10为: 00001001& 00001010得 00001000所以9&10的结果为8。 -2&-3的结果。-2的补码为11111110-3的补码为11111101得到的补码为11111100原码为10000100故结果为-4。(2) 按位异或运算符(^)1^1=0 0^0=0 1^0=1 0^1=1注意:求得的补码第一位为1,代表为负数,转为原码后算出十进制数。求补码前,第一位数(代表正负的0或者1)也加入计算。(3) 取反运算符(~)(4) 左移运算符(<<)9<<2的运算过程00001001左移两位后变为 0000100100(即在数字的右边加两个零) 64<<2结果为256即01000000左移两位为0100000000,即为256。注:负数的计算也是如此,先求补码再移位,所得的补码再转变为原码,求出结果。 (5)右移运算符(>>) 137>>2的运算过程: 10001001 右移两位后变为00100010,(数据右移两位在最左边加两个零,最右边丢去两位数)。. 结果为34. 对于有符号的数据,如果符号位为零。则最左边补入0;如果符号为1(为负数),则左边全部补入1. 如 -119>>2 的运算过程 -119的补码为10001001 右移两位后得11100010。转为原码为10011110.故的-30。
猜您喜欢
推荐内容
开源项目推荐 更多
热门活动
热门器件
用户搜过
随便看看
热门下载
热门标签
评论