主题:如何数值转换?
luochen601
[专家分:0] 发布于 2006-11-03 19:44:00
在textbox1里输入十六进制数,比如输入:abcd,如何把它转换为int类型?
另外,如何转换成这样的byte[]数组?即:输入abcd后byte[0]=16*10+11=171;byte[1]=16*12+13=192
回复列表 (共3个回复)
沙发
jzyray [专家分:20610] 发布于 2006-11-03 23:00:00
int.Parse(str, formatProvider)
只要设计好formatProvider,啥转换都能实现
不过我想还是自己设计方法比较方便
板凳
highandblue [专家分:120] 发布于 2006-11-04 01:22:00
楼主不妨这样实现:
在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 楼
luochen601 [专家分:0] 发布于 2006-11-04 21:50:00
万分感谢!
我来回复