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();

}
}
}

原文地址:https://www.cnblogs.com/zoujinhua/p/11132805.html

时间: 2024-10-09 20:30:58

C#字符串和16进制字符串之间的转换的相关文章

字节流、字符串、16进制字符串转换__Java(转)

Java代码   /** * @Package: * @ClassName:TypeConversion * @Description:字节流.字符串.16进制字符串转换 * @author:xk * @date:Jan 8, 2013 5:00:08 PM */ public class TypeConversion { /** * @Title:bytes2HexString * @Description:字节数组转16进制字符串 * @param b *            字节数组 *

字符串和16进制字符串的相互转化

我们在工作中,有时候会需要将字符串转化为16进制字符串给用户,因为ASCII中有些字符,当我们使用printf("%s",p_ch);输出时会杂乱无章,如果采用16进制,会好很多. 因此编写程序,代码如下: #include <stdio.h> #include <string.h> int strToHex(char *ch, char *hex); int hexToStr(char *hex, char *ch); int hexCharToValue(c

python中2进制、10进制、16进制等之间的转换

10转2: bin(8) # '0b1000' 2转10: int('1000', 2) # 8 10转16: hex(15) # '0xf' 16转10: int('f', 16) # 15 2进制和16进制中间通过转10进制可以相互转换

C#数字、16进制字符串和字节之间互转

转自http://luohonghong.blog.163.com/blog/static/78312058201242632055642/ 如下: 1.数字和字节之间互转 int num=12345; byte[] bytes=BitConverter.GetBytes(num);//将int32转换为字节数组 num=BitConverter.ToInt32(bytes,0);//将字节数组内容再转成int32类型 2.将字符串转为16进制字符,允许中文 private string Str

Java字符串转16 进制工具类Hex.java

原文:Java字符串转16 进制工具类Hex.java 源代码下载地址:http://www.zuidaima.com/share/1550463378410496.htm Java 字符串转 16 进制工具类 Hex.java 实现 16进制 0xfecd .. 和 java 字符串之间的互转换! 如果做开发,通常用户登陆密码都会 mad5(salt + pwd) 然后再将 md 之后的数据 hex 一下. 这个工具类,就是实现此效果的. /* * */ package com.zuidaim

Java字节数组和16进制字符串的互相转化

背景基础知识: 1.字符编码的相关知识(转自http://blog.csdn.net/llwan/article/details/7567906) 1.1. "字符"是由数字来表示的 先来重新了解一下计算机是如何处理"字符"的,这个原理是大家必须记住的,特别是在用JAVA写程序的时候,万万不可模糊.我们知道,计算机把任何东西都用数字来表示,"字符"也不例外.比如我们要显示一个阿拉伯数字"3",在我们的PC里,其实并不是仅仅用一

Java 将字节转化为16进制字符串

很多时候我们需要将字节数组转化为16进制字符串来保存,例如做I/O字节流操作的时候,尤其在很多加密的场景中应用都比较广泛. Java中byte用二进制表示占用8位,而我们知道16进制的每个字符需要用4位二进制位来表示,所以我们就可以把每个byte转换成两个相应的16进制字符,即把byte的高4位和低4位分别转换成相应的16进制字符H和L,并组合起来得到byte 转换到16进制字符串的结果new String(H) + new String(L).即byte用十六进制表示只占2位. 从上面可以看出

【python】字符串、16进制等数据处理

最近做一个socket server,需要接收组播报文,并进行分析处理.其中涉及的一个问题是,待发送的报文是字符串形式,类似"hello world". 从wireshark截取的报文看,都是16进制数据,以为必须转为该种类型才能发送,需要转换为16进制字符串,类似"0x\a00x\c30x\b4"等. 但后来发现,直接发送数据也是ok的,应该是数据发送时自己会进行转码. 不了解的时候,网上查了下,发现大家推荐用到的模块是binascii,查看help 几个方法如下

js 16进制字符串互转

/** * 16进制转换为字符串 * @param hex * @returns {*} */ function hexToString(hex) { var tmp = ''; if (hex.length % 2 == 0 ) { for (var i = 0; i < hex.length; i += 2) { tmp += '%' + hex.charAt(i) + hex.charAt(i + 1); } } return decodeURIComponent(tmp); } /**