如何做这样的数据比较?

lzt7 2008-11-03 01:13:24

有十位的数值三个,分别为:a、b、c,通过这三个十位数值,得出一个新的十位数值d,方法如下:

a、b、c的位数分别对应,如果在此位数中有一个数字以上为1,那么d在此位数上也为1,如果a、b、c在此位数上都为0,那么d在此位数上也为0。

举例:

1010101010--a
1101101001--b
1010101010--c
得到结果
1111101011--d

这样的算法在c#该怎么写呢?该怎么通过代码,只要输入a、b、c就能得到d呢?
...全文
140 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
lzt7 2008-11-03
  • 打赏
  • 举报
回复
4楼的是可以,但你是定义了三个
string stra = "1010101010";
string strb = "1101101001";
string strc = "1010101010";

而我这边的是 string str="1010101010,1101101001,1010101010..........."可能多个
然后 str.Split[',']的,所以if (stra[i] == '0' && strb[i] == '0' && strc[i] == '0')
这个判断好像不太可行
我姓区不姓区 2008-11-03
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 lzt7 的回复:]
这样可以转二进制的?
[/Quote]
试试不就知道啦
lzt7 2008-11-03
  • 打赏
  • 举报
回复
这样可以转二进制的?
我姓区不姓区 2008-11-03
  • 打赏
  • 举报
回复
int a = Convert.ToInt32("1010101010", 2);
int b = Convert.ToInt32("1101101001", 2);
int c = Convert.ToInt32("1010101010", 2);
lzt7 2008-11-03
  • 打赏
  • 举报
回复
3楼的是可以,但前提条件是,他只给了3个string型的数
"1010101010"--a
"1101101001"--b
"1010101010"--c

该如何转换成二进制呢?我不太懂
csrwgs 2008-11-03
  • 打赏
  • 举报
回复
与: &
或: |
异或 ^


-_-b
我姓区不姓区 2008-11-03
  • 打赏
  • 举报
回复
就是一个或运算嘛,顶3楼
Hertz_liu 2008-11-03
  • 打赏
  • 举报
回复
简单,代码如下:

static void Main(string[] args)
{
string stra = "1010101010";
string strb = "1101101001";
string strc = "1010101010";
string strd = "";
for (int i = 0; i < stra.Length; i++)
{
if (stra[i] == '0' && strb[i] == '0' && strc[i] == '0')
{
strd = strd + "0";
}
else
{
strd = strd + "1";
}
}
Console.Write(strd);
Console.ReadKey();
}

楼主,接分~~
宝_爸 2008-11-03
  • 打赏
  • 举报
回复
用或就可以了:

uint a = 682; //1010101010
uint b = 873; //1101101001
uint c = 682; //1010101010

uint d = a | b | c; //1111101011
xxyping 2008-11-03
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 ojlovecd 的回复:]
C# code
string str = "1010101010,1101101001,1010101010";
string[] temp = str.Split(',');
int result = 0;
for (int i = 0; i < temp.Length; i++)
{
result |= Convert.ToInt32(temp[i], 2);
}
Console.WriteLine(Convert.ToString(result, 2));
/*
输出:
1111101011
*/
[/Quote]

学习了
lzt7 2008-11-03
  • 打赏
  • 举报
回复
解决了,谢谢ojlovecd大哥
我姓区不姓区 2008-11-03
  • 打赏
  • 举报
回复

string str = "1010101010,1101101001,1010101010";
string[] temp = str.Split(',');
int result = 0;
for (int i = 0; i < temp.Length; i++)
{
result |= Convert.ToInt32(temp[i], 2);
}
Console.WriteLine(Convert.ToString(result, 2));
/*
输出:
1111101011
*/
我姓区不姓区 2008-11-03
  • 打赏
  • 举报
回复
你还有什么问题?不都帮你解答完了吗
lzt7 2008-11-03
  • 打赏
  • 举报
回复
怎么没人了?谁能帮帮忙呢
lzt7 2008-11-03
  • 打赏
  • 举报
回复
哦?这样可以吗? 我知道有“与”“或”“异或”,我这种情况应该是“或”,c#的或应该怎么表示的阿?
wangkun9999 2008-11-03
  • 打赏
  • 举报
回复

public string getd(string a,string b,string c)
{
string d="";
for(int i=0;i<10;i++) d+=a.substring(i,1)|b.substring(i,1)|c.substring(i,1);
return d;
}

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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