BitConverter

BitConverter class

Contains methods that perform conversions of sequence of bytes to a value type and vice-versa. This is a static type with no instance services. You should never create instances of it by any means.

class BitConverter

Methods

MethodDescription
static bool _IsLittleEndian()Indicates the endianness of the current architecture.
static int64_t DoubleToInt64Bits(double)Returns a 64-bit integer value whose binary representation is equal to binary representation of the specified double-precision floating point value.
static System::ArrayPtr<uint8_t> GetBytes(bool)Converts the specified boolean value into an array of bytes.
static System::ArrayPtr<uint8_t> GetBytes(char_t)Converts the specified char_t value into an array of bytes.
static System::ArrayPtr<uint8_t> GetBytes(int16_t)Converts the specified 16-bit integer value into an array of bytes.
static System::ArrayPtr<uint8_t> GetBytes(int)Converts the specified 32-bit integer value into an array of bytes.
static System::ArrayPtr<uint8_t> GetBytes(int64_t)Converts the specified 64-bit integer value into an array of bytes.
static System::ArrayPtr<uint8_t> GetBytes(uint16_t)Converts the specified unsigned 16-bit integer value into an array of bytes.
static System::ArrayPtr<uint8_t> GetBytes(uint32_t)Converts the specified unsigned 32-bit integer value into an array of bytes.
static System::ArrayPtr<uint8_t> GetBytes(uint64_t)Converts the specified unsigned 64-bit integer value into an array of bytes.
static System::ArrayPtr<uint8_t> GetBytes(float)Converts the specified single-precision floating-point value into an array of bytes.
static System::ArrayPtr<uint8_t> GetBytes(double)Converts the specified double-precision floating-point value into an array of bytes.
static double Int64BitsToDouble(int64_t)Returns a double-precision floating point value whose value is equivalent to value.
static bool ToBoolean(const System::ArrayPtr<uint8_t>&, int)Converts one byte from the specified array starting at the specified index to boolean value.
static bool ToBoolean(const System::Details::ArrayView<uint8_t>&, int)Converts one byte from the specified array starting at the specified index to boolean value.
static char_t ToChar(const System::ArrayPtr<uint8_t>&, int)Converts two bytes from the specified array starting at the specified index to char_t value.
static char_t ToChar(const System::Details::ArrayView<uint8_t>&, int)Converts two bytes from the specified array starting at the specified index to char_t value.
static double ToDouble(const System::ArrayPtr<uint8_t>&, int)Converts eight bytes from the specified array starting at the specified index to double-precision floating point value.
static double ToDouble(const System::Details::ArrayView<uint8_t>&, int)Converts eight bytes from the specified array starting at the specified index to double-precision floating point value.
static int16_t ToInt16(const System::ArrayPtr<uint8_t>&, int)Converts two bytes from the specified array starting at the specified index to 16-bit integer value.
static int16_t ToInt16(const System::Details::ArrayView<uint8_t>&, int)Converts two bytes from the specified array starting at the specified index to 16-bit integer value.
static int ToInt32(const System::ArrayPtr<uint8_t>&, int)Converts four bytes from the specified array starting at the specified index to 32-bit integer value.
static int ToInt32(const System::Details::ArrayView<uint8_t>&, int)Converts four bytes from the specified array starting at the specified index to 32-bit integer value.
static int64_t ToInt64(const System::ArrayPtr<uint8_t>&, int)Converts eight bytes from the specified array starting at the specified index to 64-bit integer value.
static int64_t ToInt64(const System::Details::ArrayView<uint8_t>&, int)Converts eight bytes from the specified array starting at the specified index to 64-bit integer value.
static float ToSingle(const System::ArrayPtr<uint8_t>&, int)Converts four bytes from the specified array starting at the specified index to single-precision floating point value.
static float ToSingle(const System::Details::ArrayView<uint8_t>&, int)Converts four bytes from the specified array starting at the specified index to single-precision floating point value.
static String ToString(const ArrayPtr<uint8_t>&, bool, const String&)Converts all values of the specified byte array into their hexadecimal string representation. Case of letters to use in hexadecimal notation and separator inserted between each pair of neighbouring bytes are specified through corresponding arguments.
static String ToString(const ArrayPtr<uint8_t>&, int)Converts values of the specified byte array into their hexadecimal string representation starting at specified index.
static String ToString(const ArrayPtr<uint8_t>&, int, int)Converts a range of values of the specified byte array into their hexadecimal string representation.
static uint16_t ToUInt16(const System::ArrayPtr<uint8_t>&, int)Converts two bytes from the specified array starting at the specified index to unsigned 16-bit integer value.
static uint16_t ToUInt16(const System::Details::ArrayView<uint8_t>&, int)Converts two bytes from the specified array starting at the specified index to unsigned 16-bit integer value.
static uint32_t ToUInt32(const System::ArrayPtr<uint8_t>&, int)Converts four bytes from the specified array starting at the specified index to unsigned 32-bit integer value.
static uint32_t ToUInt32(const System::Details::ArrayView<uint8_t>&, int)Converts four bytes from the specified array starting at the specified index to unsigned 32-bit integer value.
static uint64_t ToUInt64(const System::ArrayPtr<uint8_t>&, int)Converts eight bytes from the specified array starting at the specified index to unsigned 64-bit integer value.
static uint64_t ToUInt64(const System::Details::ArrayView<uint8_t>&, int)Converts eight bytes from the specified array starting at the specified index to unsigned 64-bit integer value.

Fields

FieldDescription
static IsLittleEndianIndicates the endianness of the current architecture. true if the architecture is little endian, false otherwise.

Remarks

#include <system/bit_converter.h>
#include <system/smart_ptr.h>

using namespace System;

template <typename T>
void Print(T arg)
{
  std::cout << arg << ' ';

  for (const auto byte: BitConverter::GetBytes(arg))
  {
    std::cout << std::hex << static_cast<int>(byte);
  }

  std::cout << std::endl;
}

int main()
{
  // Create values to print.
  int anInt = 1234567890;
  double aDouble = 0.123456789;

  // Print value and its bytes.
  Print(anInt);
  Print(aDouble);

  return 0;
}
/*
This code example produces the following output:
1234567890 d229649
0.123457 5f633937dd9abf3f
*/

See Also