Ejemplo n.º 1
0
        private static decimal DecodeDecimal64(ByteBuffer buffer)
        {
            byte[] numArray = new byte[8];
            AmqpBitConverter.ReadBytes(buffer, numArray, 0, (int)numArray.Length);
            int num  = 1;
            int num1 = 0;

            num = ((numArray[0] & 128) != 0 ? -1 : 1);
            if ((numArray[0] & 96) != 96)
            {
                num1        = (numArray[0] & 127) << 3 | (numArray[1] & 224) >> 5;
                numArray[0] = 0;
                numArray[1] = (byte)(numArray[1] & 31);
            }
            else if ((numArray[0] & 120) == 0)
            {
                num1        = (numArray[0] & 31) << 8 | (numArray[1] & 248) >> 3;
                numArray[0] = 0;
                numArray[1] = (byte)(numArray[1] & 7);
                numArray[1] = (byte)(numArray[1] | 32);
            }
            int num2 = (int)AmqpBitConverter.ReadUInt(numArray, 0, 4);
            int num3 = (int)AmqpBitConverter.ReadUInt(numArray, 4, 4);

            return(DecimalEncoding.CreateDecimal(num3, num2, 0, num, num1 - 398));
        }
Ejemplo n.º 2
0
        private static decimal DecodeDecimal128(ByteBuffer buffer)
        {
            byte[] numArray = new byte[16];
            AmqpBitConverter.ReadBytes(buffer, numArray, 0, (int)numArray.Length);
            int num  = 1;
            int num1 = 0;

            num = ((numArray[0] & 128) != 0 ? -1 : 1);
            if ((numArray[0] & 96) != 96)
            {
                num1        = (numArray[0] & 127) << 7 | (numArray[1] & 254) >> 1;
                numArray[0] = 0;
                numArray[1] = (byte)(numArray[1] & 1);
            }
            else if ((numArray[0] & 120) == 0)
            {
                return(new decimal(0));
            }
            int num2 = (int)AmqpBitConverter.ReadUInt(numArray, 4, 4);
            int num3 = (int)AmqpBitConverter.ReadUInt(numArray, 8, 4);
            int num4 = (int)AmqpBitConverter.ReadUInt(numArray, 12, 4);

            return(DecimalEncoding.CreateDecimal(num4, num3, num2, num, num1 - 6176));
        }