CodePorting.Translator Cs2Cpp
CodePorting.Translator.Cs2Cpp.Framework
System::BitConverter Class Reference

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. More...

#include <bit_converter.h>

Static Public Member Functions

static bool _IsLittleEndian ()
 Indicates the endianness of the current architecture. More...
 
static System::ArrayPtr< uint8_t > GetBytes (bool value)
 Converts the specified boolean value into an array of bytes. More...
 
static System::ArrayPtr< uint8_t > GetBytes (char_t value)
 Converts the specified char_t value into an array of bytes. More...
 
static System::ArrayPtr< uint8_t > GetBytes (int16_t value)
 Converts the specified 16-bit integer value into an array of bytes. More...
 
static System::ArrayPtr< uint8_t > GetBytes (int value)
 Converts the specified 32-bit integer value into an array of bytes. More...
 
static System::ArrayPtr< uint8_t > GetBytes (int64_t value)
 Converts the specified 64-bit integer value into an array of bytes. More...
 
static System::ArrayPtr< uint8_t > GetBytes (uint16_t value)
 Converts the specified unsigned 16-bit integer value into an array of bytes. More...
 
static System::ArrayPtr< uint8_t > GetBytes (uint32_t value)
 Converts the specified unsigned 32-bit integer value into an array of bytes. More...
 
static System::ArrayPtr< uint8_t > GetBytes (uint64_t value)
 Converts the specified unsigned 64-bit integer value into an array of bytes. More...
 
static System::ArrayPtr< uint8_t > GetBytes (float value)
 Converts the specified single-precision floating-point value into an array of bytes. More...
 
static System::ArrayPtr< uint8_t > GetBytes (double value)
 Converts the specified double-precision floating-point value into an array of bytes. More...
 
static bool ToBoolean (const System::ArrayPtr< uint8_t > &value, int startIndex)
 Converts one byte from the specified array starting at the specified index to boolean value. More...
 
static bool ToBoolean (const System::Details::ArrayView< uint8_t > &value, int startIndex)
 Converts one byte from the specified array starting at the specified index to boolean value. More...
 
static char_t ToChar (const System::ArrayPtr< uint8_t > &value, int startIndex)
 Converts two bytes from the specified array starting at the specified index to char_t value. More...
 
static char_t ToChar (const System::Details::ArrayView< uint8_t > &value, int startIndex)
 Converts two bytes from the specified array starting at the specified index to char_t value. More...
 
static int16_t ToInt16 (const System::ArrayPtr< uint8_t > &value, int startIndex)
 Converts two bytes from the specified array starting at the specified index to 16-bit integer value. More...
 
static int16_t ToInt16 (const System::Details::ArrayView< uint8_t > &value, int startIndex)
 Converts two bytes from the specified array starting at the specified index to 16-bit integer value. More...
 
static int ToInt32 (const System::ArrayPtr< uint8_t > &value, int startIndex)
 Converts four bytes from the specified array starting at the specified index to 32-bit integer value. More...
 
static int ToInt32 (const System::Details::ArrayView< uint8_t > &value, int startIndex)
 Converts four bytes from the specified array starting at the specified index to 32-bit integer value. More...
 
static int64_t ToInt64 (const System::ArrayPtr< uint8_t > &value, int startIndex)
 Converts eight bytes from the specified array starting at the specified index to 64-bit integer value. More...
 
static int64_t ToInt64 (const System::Details::ArrayView< uint8_t > &value, int startIndex)
 Converts eight bytes from the specified array starting at the specified index to 64-bit integer value. More...
 
static uint16_t ToUInt16 (const System::ArrayPtr< uint8_t > &value, int startIndex)
 Converts two bytes from the specified array starting at the specified index to unsigned 16-bit integer value. More...
 
static uint16_t ToUInt16 (const System::Details::ArrayView< uint8_t > &value, int startIndex)
 Converts two bytes from the specified array starting at the specified index to unsigned 16-bit integer value. More...
 
static uint32_t ToUInt32 (const System::ArrayPtr< uint8_t > &value, int startIndex)
 Converts four bytes from the specified array starting at the specified index to unsigned 32-bit integer value. More...
 
static uint32_t ToUInt32 (const System::Details::ArrayView< uint8_t > &value, int startIndex)
 Converts four bytes from the specified array starting at the specified index to unsigned 32-bit integer value. More...
 
static uint64_t ToUInt64 (const System::ArrayPtr< uint8_t > &value, int startIndex)
 Converts eight bytes from the specified array starting at the specified index to unsigned 64-bit integer value. More...
 
static uint64_t ToUInt64 (const System::Details::ArrayView< uint8_t > &value, int startIndex)
 Converts eight bytes from the specified array starting at the specified index to unsigned 64-bit integer value. More...
 
static float ToSingle (const System::ArrayPtr< uint8_t > &value, int startIndex)
 Converts four bytes from the specified array starting at the specified index to single-precision floating point value. More...
 
static float ToSingle (const System::Details::ArrayView< uint8_t > &value, int startIndex)
 Converts four bytes from the specified array starting at the specified index to single-precision floating point value. More...
 
static double ToDouble (const System::ArrayPtr< uint8_t > &value, int startIndex)
 Converts eight bytes from the specified array starting at the specified index to double-precision floating point value. More...
 
static double ToDouble (const System::Details::ArrayView< uint8_t > &value, int startIndex)
 Converts eight bytes from the specified array starting at the specified index to double-precision floating point value. More...
 
static String ToString (const ArrayPtr< uint8_t > &value, bool uppercase=true, const String &separator=u"-")
 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. More...
 
static String ToString (const ArrayPtr< uint8_t > &value, int startIndex)
 Converts values of the specified byte array into their hexadecimal string representation starting at specified index. More...
 
static String ToString (const ArrayPtr< uint8_t > &value, int startIndex, int length)
 Converts a range of values of the specified byte array into their hexadecimal string representation. More...
 
static int64_t DoubleToInt64Bits (double value)
 Returns a 64-bit integer value whose binary representation is equal to binary representation of the specified double-precision floating point value. More...
 
static double Int64BitsToDouble (int64_t value)
 Returns a double-precision floating point value whose value is equivalent to value. More...
 

Static Public Attributes

static const bool IsLittleEndian
 Indicates the endianness of the current architecture. true if the architecture is little endian, false otherwise. More...
 

Detailed Description

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.

#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
*/
static System::ArrayPtr< uint8_t > GetBytes(bool value)
Converts the specified boolean value into an array of bytes.
Definition: db_command.h:9

Member Function Documentation

◆ _IsLittleEndian()

static bool System::BitConverter::_IsLittleEndian ( )
static

Indicates the endianness of the current architecture.

Returns
true if the architecture is little endian, false otherwise

◆ DoubleToInt64Bits()

static int64_t System::BitConverter::DoubleToInt64Bits ( double  value)
static

Returns a 64-bit integer value whose binary representation is equal to binary representation of the specified double-precision floating point value.

Parameters
valueThe double-precision floating point value
Returns
64-bit integer value whose binary representation is equal to that of the specified value

◆ GetBytes() [1/10]

static System::ArrayPtr< uint8_t > System::BitConverter::GetBytes ( bool  value)
static

Converts the specified boolean value into an array of bytes.

Parameters
valueA boolean value to convert
Returns
1-byte array representing specified value

◆ GetBytes() [2/10]

static System::ArrayPtr< uint8_t > System::BitConverter::GetBytes ( char_t  value)
static

Converts the specified char_t value into an array of bytes.

Parameters
valueA char_t value to convert
Returns
2-byte array representing specified value

◆ GetBytes() [3/10]

static System::ArrayPtr< uint8_t > System::BitConverter::GetBytes ( double  value)
static

Converts the specified double-precision floating-point value into an array of bytes.

Parameters
valueA floating-point value to convert
Returns
8-byte array representing specified value

◆ GetBytes() [4/10]

static System::ArrayPtr< uint8_t > System::BitConverter::GetBytes ( float  value)
static

Converts the specified single-precision floating-point value into an array of bytes.

Parameters
valueA floating-point value to convert
Returns
4-byte array representing specified value

◆ GetBytes() [5/10]

static System::ArrayPtr< uint8_t > System::BitConverter::GetBytes ( int  value)
static

Converts the specified 32-bit integer value into an array of bytes.

Parameters
valueA 32-bit integer value to convert
Returns
4-byte array representing specified value

◆ GetBytes() [6/10]

static System::ArrayPtr< uint8_t > System::BitConverter::GetBytes ( int16_t  value)
static

Converts the specified 16-bit integer value into an array of bytes.

Parameters
valueA 16-bit integer value to convert
Returns
2-byte array representing specified value

◆ GetBytes() [7/10]

static System::ArrayPtr< uint8_t > System::BitConverter::GetBytes ( int64_t  value)
static

Converts the specified 64-bit integer value into an array of bytes.

Parameters
valueA 64-bit integer value to convert
Returns
8-byte array representing specified value

◆ GetBytes() [8/10]

static System::ArrayPtr< uint8_t > System::BitConverter::GetBytes ( uint16_t  value)
static

Converts the specified unsigned 16-bit integer value into an array of bytes.

Parameters
valueAn unsigned 16-bit integer value to convert
Returns
2-byte array representing specified value

◆ GetBytes() [9/10]

static System::ArrayPtr< uint8_t > System::BitConverter::GetBytes ( uint32_t  value)
static

Converts the specified unsigned 32-bit integer value into an array of bytes.

Parameters
valueAn unsigned 32-bit integer value to convert
Returns
4-byte array representing specified value

◆ GetBytes() [10/10]

static System::ArrayPtr< uint8_t > System::BitConverter::GetBytes ( uint64_t  value)
static

Converts the specified unsigned 64-bit integer value into an array of bytes.

Parameters
valueAn unsigned 64-bit integer value to convert
Returns
8-byte array representing specified value

◆ Int64BitsToDouble()

static double System::BitConverter::Int64BitsToDouble ( int64_t  value)
static

Returns a double-precision floating point value whose value is equivalent to value.

Parameters
value64-bit integer value whose binary representation is equal to that of the specified value
Returns
The double-precision floating point value

◆ ToBoolean() [1/2]

static bool System::BitConverter::ToBoolean ( const System::ArrayPtr< uint8_t > &  value,
int  startIndex 
)
static

Converts one byte from the specified array starting at the specified index to boolean value.

Parameters
valueArray that contains bytes to convert
startIndexIndex in the array at which to start taking bytes for conversion
Returns
Boolean value resulting from conversion

◆ ToBoolean() [2/2]

static bool System::BitConverter::ToBoolean ( const System::Details::ArrayView< uint8_t > &  value,
int  startIndex 
)
static

Converts one byte from the specified array starting at the specified index to boolean value.

Parameters
valueArrayView that contains bytes to convert
startIndexIndex in the array at which to start taking bytes for conversion
Returns
Boolean value resulting from conversion

◆ ToChar() [1/2]

static char_t System::BitConverter::ToChar ( const System::ArrayPtr< uint8_t > &  value,
int  startIndex 
)
static

Converts two bytes from the specified array starting at the specified index to char_t value.

Parameters
valueArray that contains bytes to convert
startIndexIndex in the array at which to start taking bytes for conversion
Returns
char_t value resulting from conversion

◆ ToChar() [2/2]

static char_t System::BitConverter::ToChar ( const System::Details::ArrayView< uint8_t > &  value,
int  startIndex 
)
static

Converts two bytes from the specified array starting at the specified index to char_t value.

Parameters
valueArrayView that contains bytes to convert
startIndexIndex in the array at which to start taking bytes for conversion
Returns
char_t value resulting from conversion

◆ ToDouble() [1/2]

static double System::BitConverter::ToDouble ( const System::ArrayPtr< uint8_t > &  value,
int  startIndex 
)
static

Converts eight bytes from the specified array starting at the specified index to double-precision floating point value.

Parameters
valueArray that contains bytes to convert
startIndexIndex in the array at which to start taking bytes for conversion
Returns
Double-precision floating-point value resulting from conversion

◆ ToDouble() [2/2]

static double System::BitConverter::ToDouble ( const System::Details::ArrayView< uint8_t > &  value,
int  startIndex 
)
static

Converts eight bytes from the specified array starting at the specified index to double-precision floating point value.

Parameters
valueArrayView that contains bytes to convert
startIndexIndex in the array at which to start taking bytes for conversion
Returns
Double-precision floating-point value resulting from conversion

◆ ToInt16() [1/2]

static int16_t System::BitConverter::ToInt16 ( const System::ArrayPtr< uint8_t > &  value,
int  startIndex 
)
static

Converts two bytes from the specified array starting at the specified index to 16-bit integer value.

Parameters
valueArray that contains bytes to convert
startIndexIndex in the array at which to start taking bytes for conversion
Returns
16-bit integer value resulting from conversion

◆ ToInt16() [2/2]

static int16_t System::BitConverter::ToInt16 ( const System::Details::ArrayView< uint8_t > &  value,
int  startIndex 
)
static

Converts two bytes from the specified array starting at the specified index to 16-bit integer value.

Parameters
valueArrayView that contains bytes to convert
startIndexIndex in the array at which to start taking bytes for conversion
Returns
16-bit integer value resulting from conversion

◆ ToInt32() [1/2]

static int System::BitConverter::ToInt32 ( const System::ArrayPtr< uint8_t > &  value,
int  startIndex 
)
static

Converts four bytes from the specified array starting at the specified index to 32-bit integer value.

Parameters
valueArray that contains bytes to convert
startIndexIndex in the array at which to start taking bytes for conversion
Returns
32-bit integer value resulting from conversion

◆ ToInt32() [2/2]

static int System::BitConverter::ToInt32 ( const System::Details::ArrayView< uint8_t > &  value,
int  startIndex 
)
static

Converts four bytes from the specified array starting at the specified index to 32-bit integer value.

Parameters
valueArrayView that contains bytes to convert
startIndexIndex in the array at which to start taking bytes for conversion
Returns
32-bit integer value resulting from conversion

◆ ToInt64() [1/2]

static int64_t System::BitConverter::ToInt64 ( const System::ArrayPtr< uint8_t > &  value,
int  startIndex 
)
static

Converts eight bytes from the specified array starting at the specified index to 64-bit integer value.

Parameters
valueArray that contains bytes to convert
startIndexIndex in the array at which to start taking bytes for conversion
Returns
64-bit integer value resulting from conversion

◆ ToInt64() [2/2]

static int64_t System::BitConverter::ToInt64 ( const System::Details::ArrayView< uint8_t > &  value,
int  startIndex 
)
static

Converts eight bytes from the specified array starting at the specified index to 64-bit integer value.

Parameters
valueArrayView that contains bytes to convert
startIndexIndex in the array at which to start taking bytes for conversion
Returns
64-bit integer value resulting from conversion

◆ ToSingle() [1/2]

static float System::BitConverter::ToSingle ( const System::ArrayPtr< uint8_t > &  value,
int  startIndex 
)
static

Converts four bytes from the specified array starting at the specified index to single-precision floating point value.

Parameters
valueArray that contains bytes to convert
startIndexIndex in the array at which to start taking bytes for conversion
Returns
Single-precision floating-point value resulting from conversion

◆ ToSingle() [2/2]

static float System::BitConverter::ToSingle ( const System::Details::ArrayView< uint8_t > &  value,
int  startIndex 
)
static

Converts four bytes from the specified array starting at the specified index to single-precision floating point value.

Parameters
valueArrayView that contains bytes to convert
startIndexIndex in the array at which to start taking bytes for conversion
Returns
Single-precision floating-point value resulting from conversion

◆ ToString() [1/3]

static String System::BitConverter::ToString ( const ArrayPtr< uint8_t > &  value,
bool  uppercase = true,
const String separator = u"-" 
)
static

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.

Parameters
valueArray that contains bytes to convert
uppercaseSpecifies the case of letters to use in resulting hexadecimal representation
separatorA string used as a separator inserted between each pair of neighbouring bytes in the resulting string
Returns
String containing hexadecimal representation of the specified byte array

◆ ToString() [2/3]

static String System::BitConverter::ToString ( const ArrayPtr< uint8_t > &  value,
int  startIndex 
)
static

Converts values of the specified byte array into their hexadecimal string representation starting at specified index.

Parameters
valueArray that contains bytes to convert
startIndexIndex in the specified array at which to start converting
Returns
String containing hexadecimal representation of the specified range of elements of the specified array

◆ ToString() [3/3]

static String System::BitConverter::ToString ( const ArrayPtr< uint8_t > &  value,
int  startIndex,
int  length 
)
static

Converts a range of values of the specified byte array into their hexadecimal string representation.

Parameters
valueArray that contains bytes to convert
startIndexIndex in the specified array at which the range of the byte array elements to convert begins
lengthThe length of the range the byte array elements to convert
Returns
String containing hexadecimal representation of the specified range of elements of the specified array

◆ ToUInt16() [1/2]

static uint16_t System::BitConverter::ToUInt16 ( const System::ArrayPtr< uint8_t > &  value,
int  startIndex 
)
static

Converts two bytes from the specified array starting at the specified index to unsigned 16-bit integer value.

Parameters
valueArray that contains bytes to convert
startIndexIndex in the array at which to start taking bytes for conversion
Returns
Unsigned 16-bit integer value resulting from conversion

◆ ToUInt16() [2/2]

static uint16_t System::BitConverter::ToUInt16 ( const System::Details::ArrayView< uint8_t > &  value,
int  startIndex 
)
static

Converts two bytes from the specified array starting at the specified index to unsigned 16-bit integer value.

Parameters
valueArrayView that contains bytes to convert
startIndexIndex in the array at which to start taking bytes for conversion
Returns
Unsigned 16-bit integer value resulting from conversion

◆ ToUInt32() [1/2]

static uint32_t System::BitConverter::ToUInt32 ( const System::ArrayPtr< uint8_t > &  value,
int  startIndex 
)
static

Converts four bytes from the specified array starting at the specified index to unsigned 32-bit integer value.

Parameters
valueArray that contains bytes to convert
startIndexIndex in the array at which to start taking bytes for conversion
Returns
Unsigned 32-bit integer value resulting from conversion

◆ ToUInt32() [2/2]

static uint32_t System::BitConverter::ToUInt32 ( const System::Details::ArrayView< uint8_t > &  value,
int  startIndex 
)
static

Converts four bytes from the specified array starting at the specified index to unsigned 32-bit integer value.

Parameters
valueArrayView that contains bytes to convert
startIndexIndex in the array at which to start taking bytes for conversion
Returns
Unsigned 32-bit integer value resulting from conversion

◆ ToUInt64() [1/2]

static uint64_t System::BitConverter::ToUInt64 ( const System::ArrayPtr< uint8_t > &  value,
int  startIndex 
)
static

Converts eight bytes from the specified array starting at the specified index to unsigned 64-bit integer value.

Parameters
valueArray that contains bytes to convert
startIndexIndex in the array at which to start taking bytes for conversion
Returns
Unsigned 64-bit integer value resulting from conversion

◆ ToUInt64() [2/2]

static uint64_t System::BitConverter::ToUInt64 ( const System::Details::ArrayView< uint8_t > &  value,
int  startIndex 
)
static

Converts eight bytes from the specified array starting at the specified index to unsigned 64-bit integer value.

Parameters
valueArrayView that contains bytes to convert
startIndexIndex in the array at which to start taking bytes for conversion
Returns
Unsigned 64-bit integer value resulting from conversion

Member Data Documentation

◆ IsLittleEndian

const bool System::BitConverter::IsLittleEndian
static

Indicates the endianness of the current architecture. true if the architecture is little endian, false otherwise.