转换一个十六进制字符在C#中的字节值 [英] Convert a single hex character to its byte value in C#
本文介绍了转换一个十六进制字符在C#中的字节值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
这会在1个十六进制字符转换为其整数值,但需要构建一个(分)字符串。
转换。 ToInt32(serializedString.Substring(0,1),16);
.NET是否有一个内置的方式,以一个十六进制字符转换为它字节(或INT ,无所谓),不涉及创建一个新的字符串值?
解决方案
int值=0123456789ABCDEF.IndexOf(char.ToUpper(sourceString [指数]));
甚至更快(减法与阵列搜索),但没有检查损坏的输入:
INT HEXTOINT(CHAR hexChar)
{
hexChar = char.ToUpper(hexChar); //可能没有必要
返回(int)的hexChar&下; (int)的'A'?
((INT)hexChar - (INT)'0'):
10 +((INT)hexChar - (int)的'A');
}
This will convert 1 hex character to its integer value, but needs to construct a (sub) string.
Convert.ToInt32(serializedString.Substring(0,1), 16);
Does .NET have a built-in way to convert a single hex character to its byte (or int, doesn't matter) value that doesn't involve creating a new string?
解决方案
int value = "0123456789ABCDEF".IndexOf(char.ToUpper(sourceString[index]));
Or even faster (subtraction vs. array search), but no checking for bad input:
int HexToInt(char hexChar)
{
hexChar = char.ToUpper(hexChar); // may not be necessary
return (int)hexChar < (int)'A' ?
((int)hexChar - (int)'0') :
10 + ((int)hexChar - (int)'A');
}
这篇关于转换一个十六进制字符在C#中的字节值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文