首页 > 解决方案 > 无法解析 FxFF 格式的字节

问题描述

我需要以这种格式解析一个字节,Byte b = Byte.Parse("0x20");但即使工作正常,该代码也不起作用Byte b=0x20。我的问题是如何解析这种格式的字节0x06或该格式的任何类型的字符串FxFF

标签: c#

解决方案


SubString在传递给Byte.Parsewith NumberStyles.HexNumber(或类似的)或使用Convert.ToByte适当的base之前,您需要这样做:

将指定基数的数字的字符串表示形式转换为等效的 8 位无符号整数。

评论

如果 fromBase 是 16,您可以在 value 参数指定的数字前加上0xor 0X

var hex = "0x20";
var byte = Byte.Parse(hex.SubString(2), NumberStyles.HexNumber);
var byte = Convert.ToByte(hex, 16);

不能在前缀为or的字符串上使用byte.Parsewith any ,它只是无法处理它们。NumberStyles0x0X

十六进制数

指示使用AllowLeadingWhiteAllowTrailingWhiteAllowHexSpecifier样式。这是一种合数样式。

AllowHexSpecifier

表示数字字符串表示十六进制值。有效的十六进制值包括数字 0-9 和十六进制数字 AF 和 af。使用此样式解析的字符串不能以 "0x" 或 "&h" 为前缀


推荐阅读