遇到了以下错误:
System.OverflowException已被抛出 - 值对于无符号字节来说要么太大,要么太小。
有人知道怎么解决吗?
class MainClass
{
public static void Main(string[] args)
{
int decValue = 2210;
string bin = Convert.ToString(decValue, 2);
string lowerbyte = bin.Substring(Math.Max(0, bin.Length - 16));
if (lowerbyte.Length < 16)
{
lowerbyte = lowerbyte.PadLeft(16, '0');
}
Int16 circular = Convert.ToByte(CicrularLeftShift(lowerbyte, 3), 2);
string xored = Convert.ToString((circular ^ 38556), 2).Substring(Math.Max(0, Convert.ToString((circular ^ 38556), 2).Length - 16));
//converting final binary shift value to HEX
string finalHex = Convert.ToString(Convert.ToInt32(xored, 2), 16).ToUpper();
Console.WriteLine(finalHex);
}
private static string CicrularLeftShift(string key, int shift)
{
return key.Substring(shift, key.Length - shift) + key.Substring(0, shift);
}
}
Convert.ToByte
的结果赋值给了一个Int16
,这有点奇怪 - 你是想转换为short
吗? - Lee