【VS2019 C#】各种数据类型转化

1. byte[] 转 string

byte[] buf = new byte[4];
string ret = System.Text.ASCIIEncoding.Default.GetString(buf);

或者简单点:

char TheCh = (char)buf[i];
string ret = TheCh;

2.string 转 byte[]

string sendValue;
byte[] array = System.Text.ASCIIEncoding.Default.GetBytes(sendValue);

3.u32 装 string

string u32_to_string(UInt32 data)
{
    byte[] buf = new byte[4];
    buf[0] = (byte)data;
    buf[1] = (byte)(data >> 8);
    buf[2] = (byte)(data >> 16);
    buf[3] = (byte)(data >> 24);
    string ret = System.Text.ASCIIEncoding.Default.GetString(buf);
    return ret;
}

4.string转换成int型
int intA = 0;
1.intA =int.Parse(str);
2.int.TryParse(str, out intA);
3.intA = Convert.ToInt32(str);

 

C# int与string转化

1、int-->string

1             int a = 15;
2             string s1 = a.ToString();
3             string s2 = Convert.ToString(a);

2、string -->int

1             string s = "18";
2             int a1 = int.Parse(s);
3             int a2;
4             int.TryParse(s, out a2);
5             int a3 = Convert.ToInt32(s);

c# double转string保留两位小数

double tmp = 3.11415;
string s = tmp.toString(“f2”); 这样就是保留两位小数

 

把内存二进制数据转为double int 等

当用C#写上位机时,经常要与下位机通信,通信协议传来的数据都是byte[] 类型的二进制数据,C语言中,可以很简单地用memcpy来强制转换成相关数据,C#中就没这么方便,可以这样写,如下:

int Acceleration_Max_speed = BitConverter.ToInt32(buf, 0);
double Acceleration_acc_Max = BitConverter.ToDouble(buf, 8);
double Acceleration_Max_rpm = BitConverter.ToDouble(buf, 16);

 

 

你可能感兴趣的:(C#)