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 @   寻找迷途的羔羊  阅读(336)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· winform 绘制太阳,地球,月球 运作规律
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示