×

位运算介绍

消耗积分:2 | 格式:doc | 大小:27KB | 2013-03-24

syftwr

分享资料个

位运算介绍
计算机是以补码形式存放的。它的表示如下:
   正数的补码与原码相同;
   负数的补码为:最高位为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。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !