Пример #1
0
 public void ByteArrayToHex()
 {
     foreach (var tuple in testCases)
     {
         var bytes       = tuple.Item2;
         var expectedHex = tuple.Item1.ToLower();
         var actualHex   = BinaryHelpers.ByteArrayToHex(bytes);
         Assert.AreEqual(expectedHex, actualHex);
     }
 }
Пример #2
0
        public override string ToString()
        {
            var dataStack = new Stack <byte>(_start);
            var unpacked  = new List <string>();

            while (dataStack.Count > 0)
            {
                byte next = dataStack.Pop();

                if (Opcodes.IsPush(next))
                {
                    int toPush = 0;

                    if (Opcodes.IsFastPush(next))
                    {
                        toPush = next;
                    }
                    else if (next == (byte)Op.PushData1)
                    {
                        toPush = new SignedInt(dataStack.Pop()).Value;
                    }
                    else if (next == (byte)Op.PushData2)
                    {
                        toPush = new SignedInt(dataStack.Pop(2)).Value;
                    }
                    else if (next == (byte)Op.PushData4)
                    {
                        toPush = new SignedInt(dataStack.Pop(4)).Value;
                    }

                    unpacked.Add(BinaryHelpers.ByteArrayToHex(dataStack.Pop(toPush)).ToUpper());
                }

                else
                {
                    unpacked.Add(Opcodes.Strings.FirstOrDefault(x => x.Value == (Op)next).Key ?? next.ToString());
                }
            }

            return(String.Join(" ", unpacked));
        }
Пример #3
0
 public string ToHex()
 {
     return(BinaryHelpers.ByteArrayToHex(ToByteArray()));
 }