首页 > 编程语言 >C#字符串与byte[]相互转换

C#字符串与byte[]相互转换

时间:2022-09-23 16:44:18浏览次数:74  
标签:string C# hexString System Text 字符串 new byte

string类型转成byte[]:

byte[] byteArray = System.Text.Encoding.Default.GetBytes ( str );

byte[]转成string:

string str = System.Text.Encoding.Default.GetString ( byteArray );

string类型转成ASCII byte[]:

//"01" 转成 byte[] = new byte[]{ 0x30,0x31}
byte[] byteArray = System.Text.Encoding.ASCII.GetBytes ( str );

ASCIIbyte[]转成string:

//byte[] = new byte[]{ 0x30, 0x31} 转成"01"

string str = System.Text.Encoding.ASCII.GetString ( byteArray );

byte[]转16进制格式string:

//new byte[]{ 0x30, 0x31}转成"3031":
public static string ToHexString(byte[] bytes) // 0xae00cf => "AE00CF "

{
string hexString = string.Empty;
if (bytes != null)
{
System.Text.StringBuilder strB = new System.Text.StringBuilder();
for (int i = 0; i < bytes.Length; i++)
{
strB.Append(bytes[i].ToString("X2"));
}
hexString = strB.ToString();
}
return hexString;
}

16进制格式string 转byte[]:

public static byte[] hexStringToBytes(string hexString)
{
if (hexString == null || hexString.Equals(""))
{
return null;
}
hexString = hexString.ToUpper();
int length = hexString.Length / 2;
char[] hexChars = hexString.ToCharArray();
byte[] d = new byte[length];
for (int i = 0; i < length; i++)
{
int pos = i * 2;
d[i] = (byte)(charToByte(hexChars[pos]) << 4 | charToByte(hexChars[pos + 1]));
}
return d;
}

标签:string,C#,hexString,System,Text,字符串,new,byte
From: https://www.cnblogs.com/skynight/p/16723266.html

相关文章

  • C#中 DateTime 对应时间的格式化
    DateTime对应的当前时间常常需要按照指定的格式来进行输出,可以通过DateTime.Now.ToString("")来指定其格式化具体样式常用的参数变量:y:指代年份,常用"yyyy"表示:202......
  • 1、oracle 10g安装
                                      可以选择关闭              ......
  • python-D3-pycharm安装使用及语法入门1
    一Pycharm下载安装与使用下载链接地址:https://www.jetbrains.com/pycharm/download/#section=windows根据自己的系统需要安装对应的版本,我的是windows系统,因此安装如下......
  • LeeCode 动态规划(三)
    完全背包问题题目描述有n件物品和容量为w的背包,给你两个数组weights和values,分别表示第i件物品的重量和价值,每件物品可以放入多次,求解将哪些物品装入背包可使......
  • 实验2:Open vSwitch虚拟交换机实践
    实验2:OpenvSwitch虚拟交换机实践一、实验目的能够对OpenvSwitch进行基本操作;能够通过命令行终端使用OVS命令操作OpenvSwitch交换机,管理流表;能够通过Mininet的Pytho......
  • C语言经典算法100例二
    【程序21】题目:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一......
  • 内存管理下的栈 stack
    在内存管理的语境下,指的是函数调用过程中产生的本地变量和调用数据的区域。这个栈和数据结构理的栈高度相似,都满足后进先出LIFO看一段代码:voidfoo(intn){…}vo......
  • 【vue3】reactive不能直接赋值的解决方法
    在vue3里,ref和reacitve都可以定义响应式数据,但是两者有所不同。在使用reactive定义复杂结构的响应式数据时,如果你要对其赋值,会丢失其响应性。然后赋值是我们经常进行的操作......
  • 实验2:Open vSwitch虚拟交换机实践
    实验2:OpenvSwitch虚拟交换机实践一、实验目的​ 1.能够对OpenvSwitch进行基本操作;​ 2.能够通过命令行终端使用OVS命令操作OpenvSwitch交换机,管理流表;​ 3.能够......
  • -sh: 6: source: not found
    https://blog.51cto.com/u_15548310/5174288编辑文件:/etc/passwd把:yyjc:x:1001:1001::/home/yyjc:/bin/sh改为:yyjc:x:1001:1001::/home/yyjc:/bin/bash......