我有兩個字符串:二進制加法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