如何将C#中的大二进制字符串转换为十六进制字符串格式?
问题描述:
我想二进制数据(串)转换为十进制六数据(串)如何将C#中的大二进制字符串转换为十六进制字符串格式?
string BinaryData = 1011000000001001001000110100010101100111100000000001000001111011100010101011";
string HexaDecimalData = Convert.ToInt64 (BinaryData, 2).ToString ("X");
我得到一个OverflowException异常:Value was either too large or too small for a UInt64
。我可以理解,二进制字符串很大,但同样我不能想到比Int64更大的数据类型。
有什么建议吗?
答
string BinaryData = "1011000000001001001000110100010101100111100000000001000001111011100010101011";
int count = 0;
var hexstr = String.Concat(
BinaryData.GroupBy(_ => count++/4)
.Select(x => string.Concat(x))
.Select(x => Convert.ToByte(x, 2).ToString("X"))
);
这是[类似问题](http://stackoverflow.com/questions/5612306/converting-long-string-of-binary-to-hex-c-sharp)。 – sgbj 2014-09-18 17:47:22