二进制加法如何实现 我知道一种办法是:二进制——>十进制——>加法——>结果转换为二进制,有没有高手知道其他的办法?我的目的,IP地址[color=#FF0000,0.0.0.255[/color],加一为0.0.1.0。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 有幸回答这个问题: 以下只是个人写法,不对请说出来。谢谢。 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(),"输出"); 加法没有进制问题,进制只是显示的格式而已,如果你有一个二进制字符串表示的整数,要实现加法,最好先把二进制字符串转化了整数,然后加法,然后再用String.Format格式化为二进制或者十进制或者十六进制,进制只是显示格式,不应当用字符串直接实现加法,那样效率非常低,而且也麻烦,没必要这么做, 说的很对,没必要直接进行二进制、八进制或十六进制之间的加减法,通过函数convert.ToInt32(value,frombase)将进制转换为十进制,运算之后,再用函数conver.Tostring(intvaluse,tobase)转换为相应的进制即可。 【分享】最近自己写的一些关于控件和文件传输的东西 请高手赐教 listbox显示所有信息 显示“命名空间并不直接包含诸如字段或方法之类的成员”,刚学不懂为什么错,求救! XDE中的顺序图如何添加对象间的消息啊? DataGrid分页问题 请问怎样解决文件路径太长? 大家觉得这样如何?快来支持啊! 序设置DataGrid任意行和列颜色问题 送分题:如何修改hashtable里value的值。 .Net内存释放问题 C#如何实现视频监控分屏
以下只是个人写法,不对请说出来。谢谢。
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(),"输出");
通过函数convert.ToInt32(value,frombase)将进制转换为十进制,
运算之后,
再用函数conver.Tostring(intvaluse,tobase)转换为相应的进制即可。