Класс System::BitConverter

BitConverter class

Содержит методы, выполняющие преобразования последовательности байтов в тип‑значение и обратно. Это статический тип без сервисов экземпляра. Вы никогда не должны создавать его экземпляры каким-либо способом.

class BitConverter

Методы

МетодОписание
static _IsLittleEndian()Указывает порядок байтов (эндianness) текущей архитектуры.
static DoubleToInt64Bits(double)Возвращает 64-битное целочисленное значение, двоичное представление которого равно двоичному представлению указанного значения двойной точности с плавающей запятой.
static GetBytes(bool)Преобразует указанное логическое значение в массив байтов.
static GetBytes(char_t)Преобразует указанное значение char_t в массив байтов.
static GetBytes(int16_t)Преобразует указанное 16-битное целочисленное значение в массив байтов.
static GetBytes(int)Преобразует указанное 32-битное целочисленное значение в массив байтов.
static GetBytes(int64_t)Преобразует указанное 64-битное целочисленное значение в массив байтов.
static GetBytes(uint16_t)Преобразует указанное беззнаковое 16-битное целочисленное значение в массив байтов.
static GetBytes(uint32_t)Преобразует указанное беззнаковое 32-битное целочисленное значение в массив байтов.
static GetBytes(uint64_t)Преобразует указанное беззнаковое 64-битное целочисленное значение в массив байтов.
static GetBytes(float)Преобразует указанное значение одинарной точности с плавающей запятой в массив байтов.
static GetBytes(double)Преобразует указанное значение двойной точности с плавающей запятой в массив байтов.
static Int64BitsToDouble(int64_t)Возвращает значение двойной точности с плавающей запятой, эквивалентное заданному значению.
static ToBoolean(const System::ArrayPtr<uint8_t>&, int)Преобразует один байт из указанного массива, начиная с указанного индекса, в логическое значение.
static ToBoolean(const System::Details::ArrayView<uint8_t>&, int)Преобразует один байт из указанного массива, начиная с указанного индекса, в логическое значение.
static ToChar(const System::ArrayPtr<uint8_t>&, int)Преобразует два байта из указанного массива, начиная с указанного индекса, в значение char_t.
static ToChar(const System::Details::ArrayView<uint8_t>&, int)Преобразует два байта из указанного массива, начиная с указанного индекса, в значение char_t.
static ToDouble(const System::ArrayPtr<uint8_t>&, int)Преобразует восемь байт из указанного массива, начиная с указанного индекса, в значение двойной точности с плавающей запятой.
static ToDouble(const System::Details::ArrayView<uint8_t>&, int)Преобразует восемь байт из указанного массива, начиная с указанного индекса, в значение двойной точности с плавающей запятой.
static ToInt16(const System::ArrayPtr<uint8_t>&, int)Преобразует два байта из указанного массива, начиная с указанного индекса, в 16‑битное целое значение.
static ToInt16(const System::Details::ArrayView<uint8_t>&, int)Преобразует два байта из указанного массива, начиная с указанного индекса, в 16‑битное целое значение.
static ToInt32(const System::ArrayPtr<uint8_t>&, int)Преобразует четыре байта из указанного массива, начиная с указанного индекса, в 32‑битное целое значение.
static ToInt32(const System::Details::ArrayView<uint8_t>&, int)Преобразует четыре байта из указанного массива, начиная с указанного индекса, в 32‑битное целое значение.
static ToInt64(const System::ArrayPtr<uint8_t>&, int)Преобразует восемь байт из указанного массива, начиная с указанного индекса, в 64‑битное целое значение.
static ToInt64(const System::Details::ArrayView<uint8_t>&, int)Преобразует восемь байт из указанного массива, начиная с указанного индекса, в 64‑битное целое значение.
static ToSingle(const System::ArrayPtr<uint8_t>&, int)Преобразует четыре байта из указанного массива, начиная с указанного индекса, в значение одинарной точности с плавающей запятой.
static ToSingle(const System::Details::ArrayView<uint8_t>&, int)Преобразует четыре байта из указанного массива, начиная с указанного индекса, в значение одинарной точности с плавающей запятой.
static ToString(const ArrayPtr<uint8_t>&, bool, const String&)Преобразует все значения указанного массива байтов в их шестнадцатеричное строковое представление. Регистры букв, используемых в шестнадцатеричной нотации, и разделитель, вставляемый между каждой парой соседних байтов, задаются соответствующими аргументами.
static ToString(const ArrayPtr<uint8_t>&, int)Преобразует значения указанного массива байтов в их шестнадцатеричное строковое представление, начиная с указанного индекса.
static ToString(const ArrayPtr<uint8_t>&, int, int)Преобразует диапазон значений указанного массива байтов в их шестнадцатеричное строковое представление.
static ToUInt16(const System::ArrayPtr<uint8_t>&, int)Преобразует два байта из указанного массива, начиная с указанного индекса, в беззнаковое 16‑битное целое значение.
static ToUInt16(const System::Details::ArrayView<uint8_t>&, int)Преобразует два байта из указанного массива, начиная с указанного индекса, в беззнаковое 16‑битное целое значение.
static ToUInt32(const System::ArrayPtr<uint8_t>&, int)Преобразует четыре байта из указанного массива, начиная с указанного индекса, в беззнаковое 32‑битное целое значение.
static ToUInt32(const System::Details::ArrayView<uint8_t>&, int)Преобразует четыре байта из указанного массива, начиная с указанного индекса, в беззнаковое 32‑битное целое значение.
static ToUInt64(const System::ArrayPtr<uint8_t>&, int)Преобразует восемь байт из указанного массива, начиная с указанного индекса, в беззнаковое 64‑битное целое значение.
static ToUInt64(const System::Details::ArrayView<uint8_t>&, int)Преобразует восемь байт из указанного массива, начиная с указанного индекса, в беззнаковое 64‑битное целое значение.

Поля

ПолеОписание
static IsLittleEndianУказывает порядок байтов текущей архитектуры. true, если архитектура использует порядок little endian, false в противном случае.

Примечания

#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()
{
  // Создайте значения для печати.
  int anInt = 1234567890;
  double aDouble = 0.123456789;

  // Выведите значение и его байты.
  Print(anInt);
  Print(aDouble);

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

См. также