我知道一种办法是:二进制——>十进制——>加法——>结果转换为二进制,
有没有高手知道其他的办法?
我的目的,IP地址[color=#FF0000,0.0.0.255[/color],加一为0.0.1.0

解决方案 »

  1.   

    有幸回答这个问题:
      以下只是个人写法,不对请说出来。谢谢。
    char[] add1 = new char[] { (char)0, (char)0, (char)0, (char)255 };
    char[] add2 = new char[] { (char)0, (char)0, (char)0, (char)1 };
    char[] result = new char[] { (char)0, (char)0, (char)0, (char)0 }; int 进位 = 0;
    for (int i = 3; i >= 0; i--)
    {
    进位 = (add1[i] + add2[i] + 进位);
    result[i] = (char)(进位&0xff);
    进位 = 进位 >> 8;
    } //輸出:
    StringBuilder sb = new StringBuilder();
    for (int i = 3; i >= 0; i--)
    {
    sb.AppendLine(((int)result[i]).ToString());
    }
    MessageBox.Show(sb.ToString(),"输出");
      

  2.   

    加法没有进制问题,进制只是显示的格式而已,如果你有一个二进制字符串表示的整数,要实现加法,最好先把二进制字符串转化了整数,然后加法,然后再用String.Format格式化为二进制或者十进制或者十六进制,进制只是显示格式,不应当用字符串直接实现加法,那样效率非常低,而且也麻烦,没必要这么做,
      

  3.   

    说的很对,没必要直接进行二进制、八进制或十六进制之间的加减法,
    通过函数convert.ToInt32(value,frombase)将进制转换为十进制,
    运算之后,
    再用函数conver.Tostring(intvaluse,tobase)转换为相应的进制即可。