日期:2014-05-17  浏览次数:21236 次

C# 如何实现这样的二进制运算?
请问C#如何实现下面这样的二进制运算?(两个二进制数存储在字符串里)

string Num1 = "10";
string Num2 = "10";

结果:"100"

除了把Num1和Num1转换为十进制,算完=4,再转换成100,还有没有更直接一点的方法?
比如:
"10"→二进制的10,
二进制原理相加得100?

二进制

------解决方案--------------------
这就够直接的了
------解决方案--------------------
int sum = Convert.ToInt32(Num1, 2) + Convert.ToInt32(Num2, 2);
string b = Convert.ToString(sum, 2);

------解决方案--------------------
可以不需要转换成十进制,那就按照二进制的按位加啊,逢2进1的思路就可以啊
------解决方案--------------------
计算机内部本来就是二进制运算的,你这样目的何在?怪电脑不懂二进制,非要手动实现?
------解决方案--------------------
如果你需要处理 BIG INTEGER,那么就自己写一个类对其进行处理,对字符串的每一个位自己计算,还要注意进位。字符串还得判断合法性。加减乘除都得实现。等等
------解决方案--------------------
写了一个加法的,看看如何处理的,然后再自己试着写其他的,只能帮你到这了。。。
        static string BinaryStrAdd(string str1, string str2)
        {
            // Ignore Validation...

            string result = string.Empty;

            int len = 0;
            char[] ch1 = str1.Reverse().ToArray();
            char[] ch2 = str2.Reverse().ToArray();

            len = ch1.Length > ch2.Length ? ch1.Length : ch2.Length;
            byte[] b1 = new byte[len];
            byte[] b2 = new byte[len];
            byte[] b3 = new byte[len + 1];
            for (int i = 0; i < ch1.Length; i++)
            {
                b1[i] = Convert.ToByte(ch1[i].ToString());
            }

            for (int i = 0; i < ch2.Length; i++)
            {
                b2[i] = Convert.ToByte(ch2[i].ToString());
           &nb