架构师_程序员_码农网

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

搜索
查看: 17690|回复: 0

[资料] C# 中2,10,16进制及其ASCII码之间转化

[复制链接]
发表于 2016-8-9 10:22:40 | 显示全部楼层 |阅读模式

C# 中2,10,16进制及其ASCII码之间转化
            --------//C#中各种字符类型的转化,使用于串口通信------------


             //字符长度的理解
            string s = "我是一个2兵";
            int len = s.Length;//6个字符  
            byte[] sarr = System.Text.Encoding.Default.GetBytes(s);
            len = sarr.Length;//11个字节  
           
            //10进制转字符串,也没有意义,要转成对应的ascii码
            int t1 = 81;
            string s1 = t1.ToString();
            //这个10进制转对应ASCII字符才有意义。
            s1 = ((char)t1).ToString();

            //16进制转字符串:这个没有意义。就是tostring了。
            int intAB = 0x16;
            s1 = intAB.ToString();
            //16进制转对应ASCII字符:
            byte babb = 0x45;
            string ass = ((char)babb).ToString();

            //ASCII字符串转10进制数
            string tr = "2Ab刘";
            string d ="";
            for (int i = 0; i < tr.Length; i++)
            {
                int ii = (int)Convert.ToChar(tr.Substring(i, 1));
                d = d +" "+ ii.ToString();
            }

            //ASCII字符串转16进制数
            string s2 = "2Ab刘";
            byte[] ba = System.Text.ASCIIEncoding.Default.GetBytes(s2);
            StringBuilder sb = new StringBuilder();
            foreach (byte b in ba)
            {
                sb.Append(b.ToString("x") + " ");
            }

            //16进制数转10进制
            int intA = 0x16;//定义的时候是必须带0x的  
            string strA = "16";//字符串可以不带  
            int intA1 = Convert.ToInt32(intA);
            int intA2 = Convert.ToInt32(strA, 16);

            //10进制转16进制
            strA = Convert.ToString(intA2, 16);


            //10进制转2进制,16进制类似
            int int10 = 10;
            string str2 = Convert.ToString(int10,2);

            //2进制转10进制
            int10 = Convert.ToInt32(str2,2);







//-------------------------------------------------------------------------------

c# serialport 如何接收一组十六进制数
c# serialport   如何接收一组十六进制数,程序该怎么写?
最佳答案
System.IO.Ports.SerialPort sp = new System.IO.Ports.SerialPort("COM1");
int buffersize = 6;   //十六进制数的大小(假设为6Byte)
Byte[] buffer = new Byte[buffersize];   //创建缓冲区
sp.Read(buffer, 0, buffersize);    //从COM1读取

//对这组十六进制数进行处理  


C#串口发送数据
悬赏分:5 - 解决时间:2009-10-19 21:15
我想给串口发送十六进制命令,命令字符串是:“00 00 00 1B 54 59 55 54 00 00 00 00 00 00 00 00 00 00 00 00 FF E1 00 05 00 0D 0A”
我如何将上述字符串进行数值转化,才能使计算机串口知道我发的本字符串是十六进制的? 问题补充:
各位谁有这样的示例代码,麻烦帮我一下,我是做硬件的,对软件不熟悉,希望高手能给段详细代码,谢谢!提问者: daishuanqing - 实习生 一级
最佳答案
添加引用:Microsoft.VisualBasic(是C#代码,只是需要引用下。。)

用以下遍历SerialPortNames,获得所有的串口
Microsoft.VisualBasic.Devices.Computer pc = new Microsoft.VisualBasic.Devices.Computer();
foreach (string s in pc.Ports.SerialPortNames)
{
    this.comboBox1.Items.Add(s);
}

然后对应显示的串口名称comName,获取操作对象。就可以对这个串口进行打开了:

System.IO.Ports.SerialPort com = new System.IO.Ports.SerialPort(comName);
com.Open();

然后可以对串口写数据

向串口发送数据:
com.WriteLine(this.textBox1.Text);
也可以写byte数组
com.Write(bArray,0,5);//是指写byte数组bArray的,从0开始的5个byte

也可以接受数据:
com.ReadLine()
也可以读byte
com.ReadByte();


最后就是关闭了:
com.Close();


另外将16进制string转byte
byte b = Convert.ToByte("1A",16); C#串口发送数据
悬赏分:5 - 解决时间:2009-10-19 21:15
我想给串口发送十六进制命令,命令字符串是:“00 00 00 1B 54 59 55 54 00 00 00 00 00 00 00 00 00 00 00 00 FF E1 00 05 00 0D 0A”
我如何将上述字符串进行数值转化,才能使计算机串口知道我发的本字符串是十六进制的? 问题补充:
各位谁有这样的示例代码,麻烦帮我一下,我是做硬件的,对软件不熟悉,希望高手能给段详细代码,谢谢!提问者: daishuanqing - 实习生 一级
最佳答案
添加引用:Microsoft.VisualBasic(是C#代码,只是需要引用下。。)

用以下遍历SerialPortNames,获得所有的串口
Microsoft.VisualBasic.Devices.Computer pc = new Microsoft.VisualBasic.Devices.Computer();
foreach (string s in pc.Ports.SerialPortNames)
{
    this.comboBox1.Items.Add(s);
}

然后对应显示的串口名称comName,获取操作对象。就可以对这个串口进行打开了:

System.IO.Ports.SerialPort com = new System.IO.Ports.SerialPort(comName);
com.Open();

然后可以对串口写数据

向串口发送数据:
com.WriteLine(this.textBox1.Text);
也可以写byte数组
com.Write(bArray,0,5);//是指写byte数组bArray的,从0开始的5个byte

也可以接受数据:
com.ReadLine()
也可以读byte
com.ReadByte();


最后就是关闭了:
com.Close();


另外将16进制string转byte
byte b = Convert.ToByte("1A",16);




上一篇:c# ascii加密和解密
下一篇:webapi不支持跨域请求的解决方法
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

免责声明:
码农网所发布的一切软件、编程资料或者文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To:help@itsvse.com

QQ|手机版|小黑屋|架构师 ( 鲁ICP备14021824号-2 )|网站地图

GMT+8, 2025-5-7 04:46

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表