• C#字符串和16进制字符串之间的转换


    将字符串编码成 16进制 字符串表示:


    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Net;

    namespace ConsoleApplication1
    {
    class Program
    {
    static void Main(string[] args)
    {
    // 将字符串转换成16进制表示:
    // 先将字符串转换成 byte 数组;
    // (1)、如果是数字或者字符:byte[] data = Encoding.ASCII.GetBytes(str);
    // (2)、如果是汉字:byte[] data = Encoding.Default.GetBytes(str);
    // 然后将 byte 数组中的每一个元素都转换成 16进制 字符串。

    string strResult1 = "";
    string strData1 = "V1.1";
    byte[] data1 = Encoding.ASCII.GetBytes(strData1); // 将“字符或数字”字符串转换成byte数组

    // 将 byte 数组中的每一个元素都转换成 16进制 字符串。
    for (int i = 0; i < data1.Length; i++)
    {
    strResult1 += data1[i].ToString("X2");
    }

    Console.WriteLine(strResult1);



    string strResult2 = "";
    string strData2 = "刘振英";
    byte[] data2 = Encoding.Default.GetBytes(strData2); // 将“汉字”字符串转换成byte数组

    for (int i = 0; i < data2.Length; i++) // 将byte数组中的每一个字符串都转换成 16进制 字符串
    {
    strResult2 += data2[i].ToString("X2");
    }

    Console.WriteLine(strResult2);

    Console.ReadKey();
    }
    }
    }


    将 16进制 字符串解码成对应的 字符串:


    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Net;

    namespace ConsoleApplication1
    {
    class Program
    {
    static void Main(string[] args)
    {
    /*************** 将 16进制字符串 解码成 字符串 ***************/

    string strData1 = "56312E31";
    string getData1 = "";

    // 声明一个byte数组,大小为 16进制字符串 长度的一半,因为16进制数据都是两个一组
    byte[] buf1 = new byte[strData1.Length / 2];
    for (int i = 0; i < strData1.Length; i += 2)
    {
    // 将 16进制字符串 中的每两个字符转换成 byte,并加入到新申请的 byte数组 中
    buf1[i / 2] = Convert.ToByte(strData1.Substring(i, 2), 16);
    }

    // 将 byte数组 解码成 字符串:
    getData1 = Encoding.Default.GetString(buf1);
    Console.WriteLine("56312E31 对应的字符串是:" + getData1);


    /***************** 将 16进制字符串 解码成 汉字 *******************/

    string strData2 = "C1F5D5F1D3A2";
    string getData2 = "";

    byte[] buf2 = new byte[strData2.Length / 2];
    for (int i = 0; i < strData2.Length; i += 2)
    {
    buf2[i / 2] = Convert.ToByte(strData2.Substring(i, 2), 16);
    }

    // 解码成汉字
    getData2 = Encoding.GetEncoding("GB2312").GetString(buf2);
    Console.WriteLine("C1F5D5F1D3A2 对应的字符串是:" + getData2);

    Console.ReadKey();

    }
    }
    }

  • 相关阅读:
    Emacs和ESS的使用技巧。
    响应式
    Day learn,day up
    Docker快速安装kafka | 沈健的技术博客
    闭包函数如何使用循环变量
    leetcode笔记——35.搜索插入位置
    CSS 之动态变换背景颜色
    吴裕雄 PYTHON 神经网络——TENSORFLOW 双隐藏层自编码器设计处理MNIST手写数字数据集并使用TENSORBORD描绘神经网络数据2
    吴裕雄 PYTHON 神经网络——TENSORFLOW 双隐藏层自编码器设计处理MNIST手写数字数据集并使用TENSORBORD描绘神经网络数据
    吴裕雄 PYTHON 神经网络——TENSORFLOW 单隐藏层自编码器设计处理MNIST手写数字数据集并使用TensorBord描绘神经网络数据
  • 原文地址:https://www.cnblogs.com/zoujinhua/p/11132805.html
Copyright © 2020-2023  润新知