免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 11359 | 回复: 13
打印 上一主题 下一主题

如何用bis,bic(位清除,位设置)实现或,异或 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-12-05 20:36 |只看该作者 |倒序浏览
现在有两个函数bis,bic。bis的功能是位设置,bic的功能是位清除。申明为:
int bis(int x ,int m)
int bic(int x ,int m)
参数m为掩码,对于bis,就是在m为1的每个位置,修改x的对应位为1,并返回修改后的值。同理,对bic,修改x的对应位为0后返回。

问题是:
如何在C语言中只使用bis,bic来实现|和^运算,而不使用任何其他c语言运算,下面的?处该怎么填。

谢谢

  1. int boor_or(int x,int y)
  2. {
  3.     int result = ?;
  4.     return result;
  5. }

  6. int boor_xor(int x ,int y)
  7. {
  8.   int result = ?;
  9.   return result;
  10. }

复制代码

论坛徽章:
1
CU十二周年纪念徽章
日期:2013-10-24 15:41:34
2 [报告]
发表于 2010-12-05 21:47 |只看该作者
本帖最后由 rubylc_unix 于 2010-12-05 22:22 编辑

回复 1# lpzgbd

  1. [code]int bis(int x ,int m)
  2. int bic(int x ,int m)


  3. int boor_or(int x,int y)
  4. {
  5.      int result = ?;
  6.      return result;
  7. }


  8. int boor_xor(int x ,int y)
  9. {
  10.   int result = ?;
  11.    return result;
  12. }
复制代码
你看看这样行不?
boor_or实现
result = bis( bis(0, x), y);[/code]

论坛徽章:
0
3 [报告]
发表于 2010-12-05 22:19 |只看该作者
回复 2# rubylc_unix


    只要不引入其他任何运算就行了。
你这个相当于是bis(x,y)

那bool_xor如何实现呢。

论坛徽章:
1
CU十二周年纪念徽章
日期:2013-10-24 15:41:34
4 [报告]
发表于 2010-12-05 22:21 |只看该作者
回复 3# lpzgbd


    呵呵,这个我暂时还没有想到。{:3_189:} ,坐等高手解决阿

论坛徽章:
0
5 [报告]
发表于 2010-12-06 00:34 |只看该作者
允许
bool_not写成bic(0x很多f, x)不
可以的话就可以
x and y = not(not(x) or not(y))
x xor y = (x and not(y)) or (not(x) and y)

论坛徽章:
0
6 [报告]
发表于 2010-12-06 00:36 |只看该作者
bis(bic(x, y), bic(y, x))

论坛徽章:
0
7 [报告]
发表于 2010-12-06 00:46 |只看该作者
or + not = everything

论坛徽章:
0
8 [报告]
发表于 2010-12-06 00:49 |只看该作者
or + not = everything
jerryz920 发表于 2010-12-06 00:46


但是not挺麻烦的,还是你楼上的简单,bic其实就是x and not(y)
先去凑not结果反而更复杂了……

论坛徽章:
0
9 [报告]
发表于 2010-12-06 00:56 |只看该作者
回复 8# Etrnls


    是的,构造方法很多的~

    已经过了学数理逻辑时那疯狂的年代了,看着还挺怀念的~

论坛徽章:
1
CU十二周年纪念徽章
日期:2013-10-24 15:41:34
10 [报告]
发表于 2010-12-06 08:36 |只看该作者
bis(bic(x, y), bic(y, x))
pagx 发表于 2010-12-06 00:36



    NICE!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP