【C#】网络通信中常用的int,string,byte,10进制,16进制之间的转换

网络通信中常用到 int,string,byte,10进制,16进制之间的转换

 

int 转 byte

int i = 12;
byte b = (byte)i;

byte 转 int

i = (int)b;

 

int转byte[]

int startNum = 18888;
byte[] by = BitConverter.GetBytes(startNum); //200 73 0 0

byte[]转int

int num = BitConverter.ToInt32(by, 0);//18888

 

10进制 转 16进制

string str = Convert.ToString(i, 16);

str = i.ToString("X");

使用大写的X,获取的是大写的字符,比如10进制的12转成16进制,使用X则转成C,使用x则转成c

也可以使用str.ToUpper()或str.ToLower()转成大写或小写

str = string.Format("{0:X}", i);

16进制 转 10进制

i = Convert.ToInt32("A", 16);

16进制的A转成10进制,则是10

i = Convert.ToInt32("0xA", 16);

i = int.Parse(Convert.ToString(0xA, 10));

 

小例子1 设置和获取序列号

在进行网络通信过程中,通常都是把数据转成byte类型进行传输

比如上位机与下位机之间的网络通信

 

设置下位机序列号时,上位机把序列号转成byte[]作为指令参数发送给下位机

获取下位机序列号时,上位机发送指令,获取结果,将byte[] 转为string

string 转 byte[]

string sn = "1001AAA8801";
byte[] bSn = Encoding.Default.GetBytes(sn);

byte[] 转 string

string reslutSn = Encoding.Default.GetString(bSn);

 

小例子2 设置和获取MAC地址

 

设置MAC地址

MAC地址的格式是AA-AA-AA-AA-AA-AA

Win+R 输入cmd 回车,输入getmac可以查看计算机的MAC地址

比如上位机软件设置下位机MAC地址

设置MAC地址过程,在文本框输入正确格式MAC地址后,需要将16进制转为10进制byte类型,作为指令参数发送到下位机

string mac = "AA-AA-AA-AA-AA-AA";
string[] macs = mac.Split('-');

byte[] bMac = new byte[6];
for (int j = 0; j < macs.Length; j++)
{
    bMac[j] = (byte)Convert.ToInt32(macs[j], 16);
}

转成byte[] 即可作为指令参数发送到下位机

 

获取MAC地址

同样的,从下位机获取MAC,从下位机获取的数据也是byte类型的,需要将byte转为16进制

string reslutMac = "";
for (int j = 0; j < bMac.Length; j++)
{
    reslutMac += Convert.ToString((int)bMac[j], 16);

    if (j != bMac.Length - 1) reslutMac += "-";
}
reslutMac = reslutMac.ToUpper();

 

 

 

 

相关推荐
©️2020 CSDN 皮肤主题: 精致技术 设计师:CSDN官方博客 返回首页