2013-05-18 17:44:15 +02:00
|
|
|
/*****************************************************************************
|
|
|
|
* BitConverter.h *
|
|
|
|
* *
|
|
|
|
* XFX BitConverter definition file *
|
|
|
|
* Copyright (c) XFX Team. All Rights Reserved *
|
|
|
|
*****************************************************************************/
|
2013-05-05 18:18:41 +02:00
|
|
|
#ifndef _SYSTEM_BITCONVERTER_
|
|
|
|
#define _SYSTEM_BITCONVERTER_
|
|
|
|
|
|
|
|
#include "Types.h"
|
|
|
|
|
|
|
|
namespace System
|
|
|
|
{
|
|
|
|
// Converts base data types to an array of bytes, and an array of bytes to base data types.
|
|
|
|
class BitConverter
|
|
|
|
{
|
|
|
|
private:
|
2013-05-18 17:44:15 +02:00
|
|
|
static byte* GetBytes(byte *ptr, int count) NONNULL(1);
|
2013-05-05 18:18:41 +02:00
|
|
|
static bool AmIBigOrLittleEndian();
|
|
|
|
static bool SwappedWordsInDouble();
|
|
|
|
|
|
|
|
BitConverter(); //! private constructor to prevent instantiation
|
|
|
|
|
|
|
|
public:
|
|
|
|
static const bool IsLittleEndian;
|
|
|
|
|
|
|
|
static byte* GetBytes(bool value);
|
|
|
|
static byte* GetBytes(char value);
|
|
|
|
static byte* GetBytes(double value);
|
|
|
|
static byte* GetBytes(short value);
|
|
|
|
static byte* GetBytes(int value);
|
|
|
|
static byte* GetBytes(long long value);
|
|
|
|
static byte* GetBytes(float value);
|
|
|
|
static byte* GetBytes(ushort value);
|
|
|
|
static byte* GetBytes(uint value);
|
|
|
|
static byte* GetBytes(ulong value);
|
2013-05-18 17:44:15 +02:00
|
|
|
static bool ToBoolean(byte value[], int startIndex) NONNULL(1);
|
|
|
|
static char ToChar(byte value[], int startIndex) NONNULL(1);
|
|
|
|
static double ToDouble(byte value[], int startIndex) NONNULL(1);
|
|
|
|
static short ToInt16(byte value[], int startIndex) NONNULL(1);
|
|
|
|
static int ToInt32(byte value[], int startIndex) NONNULL(1);
|
|
|
|
static long long ToInt64(byte value[], int startIndex) NONNULL(1);
|
|
|
|
static float ToSingle(byte value[], int startIndex) NONNULL(1);
|
|
|
|
static ushort ToUInt16(byte value[], int startIndex) NONNULL(1);
|
|
|
|
static uint ToUInt32(byte value[], int startIndex) NONNULL(1);
|
|
|
|
static ulong ToUInt64(byte value[], int startIndex) NONNULL(1);
|
2013-05-05 18:18:41 +02:00
|
|
|
};
|
|
|
|
}
|
|
|
|
|
|
|
|
#endif //_SYSTEM_BITCONVERTER_
|