回 帖 发 新 帖 刷新版面

主题:如何数值转换?

在textbox1里输入十六进制数,比如输入:abcd,如何把它转换为int类型?
另外,如何转换成这样的byte[]数组?即:输入abcd后byte[0]=16*10+11=171;byte[1]=16*12+13=192

回复列表 (共3个回复)

沙发

int.Parse(str, formatProvider)
只要设计好formatProvider,啥转换都能实现

不过我想还是自己设计方法比较方便

板凳

楼主不妨这样实现:

在Form1中建立3个textBox,1个botton.textBox1用于用户输入,textBox2用于显示10位

数形式的数据,textBox3用于显示byte形式分组组合后的数据.

在Form1中双击botton1,添加如下程序即可:

private void button1_Click(object sender, System.EventArgs e)
        {
            int i;//i中存放了将16位输入数字转化为10位数字后的值
            int j = textBox1.Text.Length;//j变量是输入字符串的长度
            int k = j/2;//楼主要求把数据两个两个一组放,k表示配对后的数据组数
            char[] a = new char [j];//定义一个字符数组,用于分别存放输入的字符串
            string str1 = "";//str1用于存放两两配对后的字符串
            string str2 = "";//str2用于将所有配对处理后的数据合并在一起,以方便显示
            byte[] b = new byte [k] ;//用于存放处理经过两两配对后的数据
            
            a = textBox1.Text.ToCharArray(0,j);//将输入数据变成一个一个的字符,放在字符数组a中
            for(int l = 0 ; l<k ; l++)
            {
                str1 = a[2*l].ToString()+a[2*l+1].ToString();//将每两个字符合并在一起,放在str1中
                b[l] = Convert.ToByte (str1,16);//将str1中字符串形式的数据处理,变成byte形式,存放在b[l]中
                str2 = str2 + b[l]+" ";//将所有处理后的数据放在一起,用于显示在textBox3中
            }

            
            i = Convert.ToInt32(textBox1.Text,16);//将16位的输入字符串变成10位的int形式的数据
            textBox2.Text = i.ToString();//将i中的数据变成string形式,放在textBox2中
            textBox3.Text = str2;//将str2中的数据显示在textBox3中
        }

我自己已经试过了,虽然程序编得有些罗嗦,但确实能实现楼主要求的功能

3 楼


万分感谢!

我来回复

您尚未登录,请登录后再回复。点此登录或注册