public Int64 ReadInt64() { LongTypeEnum flag = (LongTypeEnum)_reader.ReadByte(); if (flag == LongTypeEnum.Zero) { return(default(Int64)); } Int64 ret; if ((flag & LongTypeEnum.ByteVal) == LongTypeEnum.ByteVal) { ret = _reader.ReadByte(); } else if ((flag & LongTypeEnum.ShortVal) == LongTypeEnum.ShortVal) { ret = _reader.ReadUInt16(); } else if ((flag & LongTypeEnum.IntVal) == LongTypeEnum.IntVal) { ret = _reader.ReadUInt32(); } else { ret = _reader.ReadInt64(); } if ((flag & LongTypeEnum.Minus) == LongTypeEnum.Minus) { return(-ret); } return(ret); }
public Int64 ReadInt64() { LongTypeEnum flag = (LongTypeEnum)_reader.ReadByte(); if (flag == LongTypeEnum.Zero) { return(default(Int64)); } Int64 ret = _reader.ReadInt64(); if ((flag & LongTypeEnum.Minus) == LongTypeEnum.Minus) { return(-ret); } return(ret); }
public void WriteInt64(Int64 num) { CheckBufferPoll(9); if (num == default(Int64)) { _ms.WriteByte((byte)LongTypeEnum.Zero); return; } LongTypeEnum flag = LongTypeEnum.DEFAULT; if (num < 0) { flag = LongTypeEnum.Minus; num = Math.Abs(num); } byte[] byts = BitConverter.GetBytes(num); _ms.WriteByte((byte)flag); _ms.Write(byts, 0, byts.Length); }
public void WriteInt64(Int64 num) { CheckBufferPoll(9); if (num == default(Int64)) { _ms.WriteByte((byte)LongTypeEnum.Zero); return; } LongTypeEnum flag = LongTypeEnum.DEFAULT; if (num < 0) { flag = LongTypeEnum.Minus; num = Math.Abs(num); } byte[] byts = null; if (num <= byte.MaxValue) { flag |= LongTypeEnum.ByteVal; byts = new byte[] { (byte)num }; } else if (num < short.MaxValue) { flag |= LongTypeEnum.ShortVal; byts = BitConverter.GetBytes((short)num); } else if (num < int.MaxValue) { flag |= LongTypeEnum.IntVal; byts = BitConverter.GetBytes((int)num); } else { byts = BitConverter.GetBytes(num); } _ms.WriteByte((byte)flag); _ms.Write(byts, 0, byts.Length); }