如何将16进制字符串转换成byte型

2025-04-13 18:18:25
推荐回答(4个)
回答1:

你的意思是对S中的每一个英文字符使用一个byte来保存这个英文字符的ASCII码吗?那就这样来实现:
byte[] b = Encoding.ASCII.GetBytes(s);

还是将字符串转成整形,再放到一个byte里面
那就这样:
byte b = Convert.ToByte(s, 16);

"问题补充:我要的是byte b=0x41,0x开关的就是16进制 ,一楼的方法把它变成65了,我要的是0x41!"
你这个是什么意思啊,byte是一个字节,0x41的值本来就是65啊,保存在内存中也是以65的的二进制01000001来保存,你需要0x41是什么意思

回答2:

最近刚好遇到这个问题,目前还有点小毛病,等搞好再修改吧。先写下来

首先我把0x都删了,留下的就是0934560abce0000这些文本,但是呢它实际上是16进制数据报文。
然后按行读取得到字符串。
字符串再用for循环,i步进2,次数等于长度除以2
每次循环操作两位数,即目的是09变为char,保存为0x09
方法是遇到0-9的数就直接等于,遇到abcdef就减去字符a再加10,然后第一位乘以16加第二位。

如果第一位是0,则直接取第二位等等,目前还有变错的,正在找

回答3:

byte b=(byte)Uri.FromHex((char)0x32);
MessageBox.Show(b.ToString());

回答4:

b = byte.Parse(s.Substring(2), System.Globalization.NumberStyles.HexNumber);