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; } }
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; } }
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; } }