示例#1
0
        public FOUR_BYTE_UNSIGNED_INTEGER(uint num)
        {
            if (num > 0x3FFFFFFF)
            {
                throw new ArgumentException("The integer is out of the valid range of FOUR_BYTE_UNSIGNED_INTEGER.", "num");
            }

            if (num <= 0x3F)
            {
                c = FOUR_BYTE_C_Values.ONE_BYTE_VAL;
                val1 = (byte)num;
            }
            else if (num <= 0x3FFF)
            {
                c = FOUR_BYTE_C_Values.TWO_BYTE_VAL;
                val1 = (byte)(num >> 8);
                val2 = (byte)num;
            }
            else if (num <= 0x3FFFFF)
            {
                c = FOUR_BYTE_C_Values.THREE_BYTE_VAL;
                val1 = (byte)(num >> 16);
                val2 = (byte)(num >> 8);
                val3 = (byte)num;
            }
            else
            {
                c = FOUR_BYTE_C_Values.FOUR_BYTE_VAL;
                val1 = (byte)(num >> 24);
                val2 = (byte)(num >> 16);
                val3 = (byte)(num >> 8);
                val4 = (byte)num;
            }
        }
示例#2
0
 public bool Decode(PduMarshaler marshaler)
 {
     try
     {
         byte t = marshaler.ReadByte();
         c = (FOUR_BYTE_C_Values)(t >> 6);
         val1 = (byte)(t & 0x3F);
         if (c >= FOUR_BYTE_C_Values.TWO_BYTE_VAL)
         {
             val2 = marshaler.ReadByte();
         }
         if (c >= FOUR_BYTE_C_Values.THREE_BYTE_VAL)
         {
             val3 = marshaler.ReadByte();
         }
         if (c == FOUR_BYTE_C_Values.FOUR_BYTE_VAL)
         {
             val4 = marshaler.ReadByte();
         }
         return true;
     }
     catch
     {
         return false;
     }
 }
示例#3
0
 public FOUR_BYTE_SIGNED_INTEGER(int num)
 {
     if (num > 0x1FFFFFFF || num < -0x1FFFFFFF)
     {
         throw new ArgumentException("The integer is out of the valid range of FOUR_BYTE_SIGNED_INTEGER.", "num");
     }
     uint n;
     if (num < 0)
     {
         s = S_Values.NEGATIVE_VAL;
         n = (uint)(-num);
     }
     else
     {
         s = S_Values.POSITIVE_VAL;
         n = (uint)num;
     }
     if (n <= 0x1F)
     {
         c = FOUR_BYTE_C_Values.ONE_BYTE_VAL;
         val1 = (byte)n;
     }
     else if (n <= 0x1FFF)
     {
         c = FOUR_BYTE_C_Values.TWO_BYTE_VAL;
         val1 = (byte)(n >> 8);
         val2 = (byte)n;
     }
     else if (n <= 0x1FFFFF)
     {
         c = FOUR_BYTE_C_Values.THREE_BYTE_VAL;
         val1 = (byte)(n >> 16);
         val2 = (byte)(n >> 8);
         val3 = (byte)n;
     }
     else
     {
         c = FOUR_BYTE_C_Values.FOUR_BYTE_VAL;
         val1 = (byte)(n >> 24);
         val2 = (byte)(n >> 16);
         val3 = (byte)(n >> 8);
         val4 = (byte)n;
     }
 }