C#窗体(winform)实现IP地址和其子网掩码的按位与运算并输出结果

先看看最终的效果:

以下是代码部分的展示,写了详细的说明;

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace IpAdress_AND_operation
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        private void button1_Click(object sender, EventArgs e)
        {
            //分别将两个textbox的信息提取出来,存放在字符串变量str1和str2中
            string str1 = textBox1.Text;
            string str2 = textBox2.Text;
            string RESULT = "";//声明一个字符串变量用来存放最终的结果
            char[] separators = { '.' };//一个可选的参数,是一个字符数组,包含用于拆分字符串的分隔符
            //将str1和str2拆分后分别存放到字符串数组strarr1和strarr2中等待下一步处理
            string[] strarr1 = str1.Split(separators);
            string[] strarr2 = str2.Split(separators);
            int flag = 0;//这个flag用于对小数点输出次数的计数
            for (int i = 0; i < strarr1.Length; i++)
            {
                //将字符串数组中的值转化为八位二进制便于下一步的按位逻辑运算
                strarr1[i] = Convert.ToString(Convert.ToInt64(strarr1[i]) , 2).PadLeft(8, '0');
                strarr2[i] = Convert.ToString(Convert.ToInt64(strarr2[i]) , 2).PadLeft(8, '0');
                //通过八次循环对八组二进制数进行与运算
                for(int j = 0; j < 8; j++)
                {
                    int x = int.Parse(strarr1[i][j].ToString()) & int.Parse(strarr2[i][j].ToString());
                    RESULT += x;
                }
                if (flag < 3)
                {
                    RESULT += '.';
                    flag += 1;
                }
            }   
            //最后将结果输出
            textBox3.Text = RESULT.ToString();
        }
    }
}

遇到的问题和解决方法:

使用 ToInt() 函数将string转化为整型的时候有可能会转化为ASCII码的值,我在编写过程中一直会把字符0和1转化为48和49,只要用int.Parse() 函数来规避这个问题;

相关推荐

  1. 总结:IP地址、网络地址理解

    2023-12-05 19:24:02       13 阅读
  2. IP地址

    2023-12-05 19:24:02       32 阅读
  3. IP之间关系

    2023-12-05 19:24:02       37 阅读
  4. 如何通过来计算IP地址范围

    2023-12-05 19:24:02       15 阅读
  5. c++ 根据ip主机号随机生成ip

    2023-12-05 19:24:02       14 阅读

最近更新

  1. TCP协议是安全的吗?

    2023-12-05 19:24:02       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-05 19:24:02       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-05 19:24:02       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-05 19:24:02       18 阅读

热门阅读

  1. vue form表单的封装--使用的是elementUI

    2023-12-05 19:24:02       43 阅读
  2. 后端常用的方法

    2023-12-05 19:24:02       39 阅读