c#string字符串与16进制byte字节和16进制byte[]字节数组转换

应用场景1:

textbox中输入str=“200”(string类型),需转换为16进制hex=c8(byte、char、int类型)
解决方法:
利用Convert.ToByte(str)/.ToChar(str)/.ToInt16(str)/.ToInt32(str)/.ToInt64(str)
或者
byte/char/int.TryParse(str,out hex);会自动转换为16进制数据
例:

	string mytime_str = time.Text;//textbox名为time
	byte mytime_b;
        byte.TryParse(mytime_str, out mytime_b)//mytime_b = Convert.ToByte(mytime_str);

应用场景2:

textbox中输入str=“010203040506”(string类型),需转换为16进制数组(byte[]、char[]、int[]类型)
解决方法:
方法一:
首先利用str.Substring(指定字符位置, 指定长度)将字符串两两分组,再根据Convert.To.TryParse可直接将字符串转换为对应的16进制byte/int/char的特点,将字符串两两转换为16进制byte/int/char
方法二:
首先将string类型字符串转换为byte[]/char[]/int[]类型数组(ASCII,非16进制)——利用Encoding.Default.GetBytes(str)/.GetChars(str)
或者
str.ToCharArray();
再根据ASCII转换表转换为16进制
注意:
1、Encoding.Default.GetBytes(str)/.GetChars(str)以及str.ToCharArray()将字符串转换为ASCII表中的16进制byte/char数组,而非实际数字对应的16进制,目前还没有找到把字符串直接变为16进制数组的函数
2、str.Replace("#", “”)可以替换无关字符串
例:
方法一(推荐使用)

private static byte[] strToToHexBytes(string hexString)
{
   
    hexString = hexString.Replace(" ", "");
    if ((hexString.Length % 2) != 0)
        hexString += " ";
    byte[] returnBytes = new byte[hexString.Length / 2];
    for (int i = 0; i < returnBytes.Length; i++)
        returnBytes[i] = Convert.ToByte(hexString.Substring
  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值