Chinaunix

标题: 请教这个简单的东西有什么好的实现方法吗? [打印本页]

作者: anyc    时间: 2011-04-22 14:29
标题: 请教这个简单的东西有什么好的实现方法吗?
  1. if (value == 0x0A) value = 0x0B;
  2. if (value == 0x0B) value = 0x0A;
复制代码
就是0A、0B两个值交替,比如通过位操作等等?
作者: anyc    时间: 2011-04-22 14:35
0x0A+0x0B-value;
刚想到了,笨死了
作者: deepinthesea    时间: 2011-04-22 14:52
我想到的是用 ? :
作者: yulihua49    时间: 2011-04-22 14:53
就是0A、0B两个值交替,比如通过位操作等等?
anyc 发表于 2011-04-22 14:29



    value ^= 1;
作者: 雨夜流星    时间: 2011-04-22 14:54
用 v = A + B - v

如果A,B确定的话没问题,但是如果A,B很大的话,小心A+B溢出
作者: hellioncu    时间: 2011-04-22 15:19
针对0a,0b,4楼的方法最好
作者: anyc    时间: 2011-04-22 15:29
value ^= 1;
yulihua49 发表于 2011-04-22 14:53



    非常感谢,我就是想要这样滴
作者: anyc    时间: 2011-04-22 15:30
回复 6# hellioncu


    嗯,我只用0A、0B
作者: cobras    时间: 2011-04-22 18:15
对任意2值

  1. static unsigned char code[2] = {0x0A,0x0B};
  2. int value = 0;
  3. value = !value;
复制代码

作者: cobras    时间: 2011-04-22 18:17
#define MASK (A ^ B)

A ^ MASK  == B
B ^ MASK == A
A ^ B == MASK




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2