エンディアン変更

IPAddress.HostToNetworkOrderとかIPAddress.NetworkToHostOrderがあるのは知ってるけど
ネットワークで使うときでないときはなんか違う気がするんだ。
にしてもなんでsignedだけなんだ

		public static ushort ToBigEndianUInt16( this byte[] source ) {
			return BitConverter.ToUInt16( GetCorrectEndian( source ), 0 );
		}

		public static uint ToBigEndianUInt32( this byte[] source ) {
			return BitConverter.ToUInt32( GetCorrectEndian( source ), 0 );
		}

		public static ulong ToBigEndianUInt64( this byte[] source ) {
			return BitConverter.ToUInt64( GetCorrectEndian( source ), 0 );
		}

		private static byte[] GetCorrectEndian( byte[] source ) {
			byte[] buffer;
			if ( BitConverter.IsLittleEndian ) {
				buffer = source.Reverse().ToArray();
			} else {
				buffer = source;
			}
			return buffer;
		}