c# 格式转换

多数转换之间离不开字符串的过渡

1.ToString()常用格式

(1) ToString("X") 转换成16进制字符串,

     ToString("X2") 转换成16进制字符串,不够两个字符前面补0

(2) ToString("F3") 保留三位小数,不够后面补0

(3) ToString("yyyy/MM/dd HH:mm:ss:ffff") 输出日期

    或 ToString("yyyy年MM月dd日 HH:mm:ss:ffff") 

 

2. 16进制字符串转byte/int:

  byte_Value = Convert.ToByte(string_Value, 16);

  int_Value = Convert.ToInt32(string_Value, 16);

 

3. int/byte转16进制字符串:

  string_Value = Convert.ToString(byte_Value,16);

 

4. TryParse(string_Value,out int_Value)

 

5. int转字节数组

byte[] Databytes = BitConverter.GetBytes(Int_Value);

这个方法会将整数根据类型转换为非固定多个字节(1,2,4,8, ...)的Byte数组,低位在前,高位在后

例如:int 类型的 1212 转换以后为 bc 04 00 00

Byte数组 整数
FF 00 00 00 255
FF FF 00 00 65535
FF FF FF 00 16777215
FF FF FF FF 4294967295

 

还有个方法

 public byte[] intToBytes(int value)
        {
            byte[] src = new byte[4];
            src[0] = (byte)((value >> 24) & 0xFF);
            src[1] = (byte)((value >> 16) & 0xFF);
            src[2] = (byte)((value >> 8) & 0xFF);
            src[3] = (byte)(value & 0xFF);//低位
            return src;
        }
View Code

 

 

 

6. 字符串根据ASCII码表转换成Byte数组

ASCIIEncoding asciiEncoding = new System.Text.ASCIIEncoding();
byte[] lbTData = new byte[8];
string str1 = "00640BB8";
for (int k = 0; k < str1.Length; k++)
{
    lbTData[k] = asciiEncoding.GetBytes(str1)[k];
}
View Code

 

7.16进制字符串直接转换成Byte数组

            string str1 = "00640BB800000258";
            for (int i = 0; i < str1.Length; i+=2)
            {
                byte temp = Convert.ToByte(str1.Substring(i,2),16);
                lbTData[i / 2] = temp;
            }
View Code

 

     

 

posted @ 2022-03-03 11:13  寻找迷途的羔羊  阅读(366)  评论(0)    收藏  举报