出个题 提一提人气

dragonxie1983 2005-02-22 01:59:37

int a = 4 - (x&3);

Can it be done only with the & ^ | ~ << >> operators?
...全文
294 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
seedundersnow 2005-02-23
  • 打赏
  • 举报
回复
int tmp1 = ~x;
tmp1 = tmp1 ^ 1; // 补码等于反码+1
a = (tmp1 ^ (~(tmp1 << 1))) & 3; // 如果+1的结果是0,则有进位,在bit1上加1
seedundersnow 2005-02-23
  • 打赏
  • 举报
回复
我的思路大约是对的,但程序好像写错了,,,,,惭愧ing....
xdspower 2005-02-23
  • 打赏
  • 举报
回复
seedundersnow() ( ) 正解
dragonxie1983 2005-02-23
  • 打赏
  • 举报
回复
seedundersnow()
pfpf

我也有一个
int a = ((x^(x<<1))&3)|(4&~((x<<1)|(x<<2)));
seedundersnow 2005-02-22
  • 打赏
  • 举报
回复
其实搂主的题目是计算2 bit补码,最简单不过了。
seedundersnow 2005-02-22
  • 打赏
  • 举报
回复
int tmp1 = ~x;
tmp1 = tmp1 ^ 1;
a = (tmp1 ^ (tmp1 << 1)) & 3;

减法是加法的变形,而一位加法是异或操作加上进位处理,模拟一位加法器级联的操作,幸好只需要处理两位结果,不然....
huyuhui123 2005-02-22
  • 打赏
  • 举报
回复
~不行。其他都行
pkd 2005-02-22
  • 打赏
  • 举报
回复
4换成3就简单,不然不懂
zZing 2005-02-22
  • 打赏
  • 举报
回复
+-*/也可以啊?
taotao7805 2005-02-22
  • 打赏
  • 举报
回复
x与3按位与。
discory 2005-02-22
  • 打赏
  • 举报
回复
what's mean?
哪个老大来看看
x&3是什么意思?

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧