我有两个字符串:二进制加法2个值表示为字符串
string a = "00001"; /* which is decimal 1 I've converted with next string:
string a = Convert.ToString(2, 2).PadLeft(5, '0'); */
string b = "00010";
我想执行两者二进制加法所以答案将是00011(3)。
我有两个字符串:二进制加法2个值表示为字符串
string a = "00001"; /* which is decimal 1 I've converted with next string:
string a = Convert.ToString(2, 2).PadLeft(5, '0'); */
string b = "00010";
我想执行两者二进制加法所以答案将是00011(3)。
System.Convert应该能够做到为您的工作
int number_one = Convert.ToInt32(a, 2);
int number_two = Convert.ToInt32(b, 2);
return Convert.ToString(number_one + number_two, 2);
(您可能需要调整串位)
string a =“00001”; string b =“00011”; int num1 = Convert.ToInt32(a,2); int num2 = Convert.ToInt32(b,2); string ans = Convert.ToString(num1 + num2,2); MessageBox.Show(ans); “非常感谢:)你已经保存了我的项目!!!!!!!!!!!!!!!!” – Alfred 2010-02-12 16:05:29
我需要使用这个逻辑来计算出勤:), 因为00001 wld代表第一小时缺席(我们每小时有智慧出席),所以如果一个学生缺席当天的下一小时 00001 - 缺席第一小时 00010 - 缺席第二小时 ------ 00011 - 缺席第一和第二小时:D 它的工作原理!谢谢你 – Alfred 2010-02-12 16:06:03
我不得不说,我不知道Convert.ToInt32的特定重写存在! – Rob 2010-02-13 11:30:07
你这样做就像你会在纸上做一样。从右侧开始并向左移动。如果A [i] + B [i] +进位> = 2,则进位保持为1,然后继续。否则,写入A [i] + B [i] +进位并将进位置为0.
a =“00001”; b =“00010”;
carry = 0;写入1,设置进位= 0:00001
a [3] + b [3] +进位= 1,写入1,进位= 0: 00011
依此类推。
非常简单 - 为二进制字符的“添加”编写一个查找表,不要忘记随时携带,并发送给我50%的工作奖励。
我建议将数据解析为整数,然后添加它们,然后以二进制形式输出结果。
private static bool[] BinaryAdd(bool[] originalbits, long valuetoadd)
{
bool[] returnbits = new bool[originalbits.Length];
for (long i = 0; i <= valuetoadd - 1; i++)
{
bool r = false; //r=0
for (long j=originalbits.Length-1;j<=originalbits.Length;j--)
{
bool breakcond = false;
bool o1 = originalbits[j];
if (r == false)
{
if (o1 == false) { o1 = true; breakcond = true; }//break
else if (o1 == true) { o1 = false; r = true; }
}
else
{
if (o1 == false) { o1 = true; breakcond = true; }//break
else if (o1 == true) { o1 = false; r = true; }
}
originalbits[j] = o1;
if (breakcond == true)
{
break;
}
}
}
returnbits = originalbits;
return returnbits;
}
你应该给你的例子添加一些解释,以便新手能够理解它的作用。 – titanofold 2012-11-11 00:59:38
嗯...功课的问题... – 2010-02-12 15:27:59
它可能是家庭作业,但仍然是一个非常有趣的作品 - 它激起了我的好奇心,因此我已经打开了一个控制台应用程序并且现在就摆弄它! ;) – Rob 2010-02-12 15:34:32
不是真的家庭作业>。<项目:D – Alfred 2010-02-12 16:10:24