码迷,mamicode.com
首页 > 其他好文 > 详细

位运算小练习(1)

时间:2016-01-29 12:23:42      阅读:169      评论:0      收藏:0      [点我收藏+]

标签:

  练习一、

技术分享

 

     (1)

      技术分享

     (2)

      技术分享

解答:(1)or :   1 | 0 = 1, 0 | 1 = 1, 1 | 1 = 1, 0 | 0 = 0;  result = bis(x, y);

   (2)xor :   1 | 0 = 1,   0 | 1 = 1,  0 | 0 = 0,   1 | 1 = 0;    result  = bis(bic(x,y), bic(y,x));

    假设z = bic(x, y) 如果y的其中某一位 yi 为 1, 则 xi 如果为 1 则 zi = 0, 若 xi 为 0, 则zi = 0; 如果 yi 为 0,则 xi 不变, 所以 z 与 x ^ y 的差别在于 yi = 1, xi = 0 时 (x ^ y) 第 i 位为1的而 zi = 0; 所以应该找出这些位 : xi = 0, yi = 1;并把z的这些位置为 1 。u = bic (y, x) 如果xi = 1, 则 ui = 0, 如果 xi  = 0, 如果yi = 0, 则 ui = 0, 如果yi = 1, 则 ui = 1; 所以u中为 1 的位即我们上面所寻找的xi = 0, yi = 1的位。所以答案为: x ^ y = bis(bic(x, y), bic(y, x))。

 

   bis(x, y) = x | y,   bic(x, y) = ~y&x,   x ^ y = (~y&x) | (~x&y). 

 

              

            

 

位运算小练习(1)

标签:

原文地址:http://www.cnblogs.com/IwAdream/p/5168261.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!