如何将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更大的数据类型。

有什么建议吗?

+0

这是[类似问题](http://*.com/questions/5612306/converting-long-string-of-binary-to-hex-c-sharp)。 – sgbj 2014-09-18 17:47:22

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")) 
      );