日期:2014-05-20  浏览次数:20911 次

请问,如何比较两个数,相同为0,不同为1 或者 相同为1,不同为0?
比如 int a,b,c;

如果a==b,c就是0,如果a!=b,c就是1

------解决方案--------------------
直接写不就行了?
if(a==b)
{
c=0;
}
else
{
c=1;
}
------解决方案--------------------
int a=1,b=2,c;
if(a == b)
{
c = 0;
}
else
{
c = 1;
}
------解决方案--------------------
c=a==b?0:1;

这样?
------解决方案--------------------
C# code
c=(a==b?0:1);

------解决方案--------------------
C# code

int c = a==b?0:1;

------解决方案--------------------
c=Convert.ToInt32(!(a==b));
------解决方案--------------------
....
------解决方案--------------------
lz多看点书吧
------解决方案--------------------
弄个怪的.
 c = (a-b) % (a -b- 1);
------解决方案--------------------
c=Convert.ToInt32(!(a==b)); 

------解决方案--------------------
探讨
引用:
  c = (a-b) % (a -b- 1);


方法可行,但要使用除法,谁还有更快的算法,先谢谢了

------解决方案--------------------
Math.Sign(a-b)
------解决方案--------------------
要再加个Math.Abs取绝对值
------解决方案--------------------
低调路过...
------解决方案--------------------
c = Convert.ToInt32( (a ^ b) > 0);
------解决方案--------------------
或者这样: c = Convert.ToInt32(!((a ^ b) == 0));
保险一些
------解决方案--------------------
为何不用位运算
C# code
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using System.IO;

namespace CSharpTest
{
  

    class Program
    {        
        static void Main(string[] args)
        {
            int a = 3, b = 4;
            Console.WriteLine((a^b) > 1?1:0);
          
        }

        
    }
}

------解决方案--------------------
问题不错,
做个记录...
------解决方案--------------------
楼上很多正解啊
------解决方案--------------------
请问楼主,这样的意义何在???
看不懂。。。。
------解决方案--------------------
探讨
请问楼主,这样的意义何在???
看不懂。。。。

------解决方案--------------------
似乎还是位运算快。
------解决方案--------------------
探讨
似乎还是位运算快。

------解决方案--------------------
果然是变态题目。。。
好好的if else 或者 ?:不用。。。
------解决方案--------------------