classe System::BitConverter

BitConverter class

Contient des méthodes qui effectuent des conversions d’une séquence d’octets vers un type valeur et vice-versa. Il s’agit d’un type statique sans services d’instance. Vous ne devez jamais créer d’instances de celui-ci, quel que soit le moyen.

class BitConverter

Méthodes

MéthodeDescription
static _IsLittleEndian()Indique le type d’endianité de l’architecture actuelle.
static DoubleToInt64Bits(double)Renvoie une valeur entière 64 bits dont la représentation binaire est égale à la représentation binaire de la valeur en virgule flottante double précision spécifiée.
static GetBytes(bool)Convertit la valeur booléenne spécifiée en un tableau d’octets.
static GetBytes(char_t)Convertit la valeur char_t spécifiée en un tableau d’octets.
static GetBytes(int16_t)Convertit la valeur entière 16 bits spécifiée en un tableau d’octets.
static GetBytes(int)Convertit la valeur entière 32 bits spécifiée en un tableau d’octets.
static GetBytes(int64_t)Convertit la valeur entière 64 bits spécifiée en un tableau d’octets.
static GetBytes(uint16_t)Convertit la valeur entière non signée 16 bits spécifiée en un tableau d’octets.
static GetBytes(uint32_t)Convertit la valeur entière non signée 32 bits spécifiée en un tableau d’octets.
static GetBytes(uint64_t)Convertit la valeur entière non signée 64 bits spécifiée en un tableau d’octets.
static GetBytes(float)Convertit la valeur en virgule flottante simple précision spécifiée en un tableau d’octets.
static GetBytes(double)Convertit la valeur en virgule flottante double précision spécifiée en un tableau d’octets.
static Int64BitsToDouble(int64_t)Renvoie une valeur en virgule flottante double précision dont la valeur est équivalente à la valeur.
static ToBoolean(const System::ArrayPtr<uint8_t>&, int)Convertit un octet du tableau spécifié à partir de l’index spécifié en une valeur booléenne.
static ToBoolean(const System::Details::ArrayView<uint8_t>&, int)Convertit un octet du tableau spécifié à partir de l’index spécifié en une valeur booléenne.
static ToChar(const System::ArrayPtr<uint8_t>&, int)Convertit deux octets du tableau spécifié à partir de l’index spécifié en une valeur char_t.
static ToChar(const System::Details::ArrayView<uint8_t>&, int)Convertit deux octets du tableau spécifié à partir de l’index spécifié en une valeur char_t.
static ToDouble(const System::ArrayPtr<uint8_t>&, int)Convertit huit octets du tableau spécifié à partir de l’index spécifié en valeur à virgule flottante double précision.
static ToDouble(const System::Details::ArrayView<uint8_t>&, int)Convertit huit octets du tableau spécifié à partir de l’index spécifié en valeur à virgule flottante double précision.
static ToInt16(const System::ArrayPtr<uint8_t>&, int)Convertit deux octets du tableau spécifié à partir de l’index spécifié en valeur entière 16 bits.
static ToInt16(const System::Details::ArrayView<uint8_t>&, int)Convertit deux octets du tableau spécifié à partir de l’index spécifié en valeur entière 16 bits.
static ToInt32(const System::ArrayPtr<uint8_t>&, int)Convertit quatre octets du tableau spécifié à partir de l’index spécifié en valeur entière 32 bits.
static ToInt32(const System::Details::ArrayView<uint8_t>&, int)Convertit quatre octets du tableau spécifié à partir de l’index spécifié en valeur entière 32 bits.
static ToInt64(const System::ArrayPtr<uint8_t>&, int)Convertit huit octets du tableau spécifié à partir de l’index spécifié en valeur entière 64 bits.
static ToInt64(const System::Details::ArrayView<uint8_t>&, int)Convertit huit octets du tableau spécifié à partir de l’index spécifié en valeur entière 64 bits.
static ToSingle(const System::ArrayPtr<uint8_t>&, int)Convertit quatre octets du tableau spécifié à partir de l’index spécifié en valeur à virgule flottante simple précision.
static ToSingle(const System::Details::ArrayView<uint8_t>&, int)Convertit quatre octets du tableau spécifié à partir de l’index spécifié en valeur à virgule flottante simple précision.
static ToString(const ArrayPtr<uint8_t>&, bool, const String&)Convertit toutes les valeurs du tableau d’octets spécifié en leur représentation sous forme de chaîne hexadécimale. La casse des lettres à utiliser dans la notation hexadécimale et le séparateur inséré entre chaque paire d’octets voisins sont spécifiés via les arguments correspondants.
static ToString(const ArrayPtr<uint8_t>&, int)Convertit les valeurs du tableau d’octets spécifié en leur représentation sous forme de chaîne hexadécimale à partir de l’index spécifié.
static ToString(const ArrayPtr<uint8_t>&, int, int)Convertit une plage de valeurs du tableau d’octets spécifié en leur représentation sous forme de chaîne hexadécimale.
static ToUInt16(const System::ArrayPtr<uint8_t>&, int)Convertit deux octets du tableau spécifié à partir de l’index spécifié en valeur entière non signée 16 bits.
static ToUInt16(const System::Details::ArrayView<uint8_t>&, int)Convertit deux octets du tableau spécifié à partir de l’index spécifié en valeur entière non signée 16 bits.
static ToUInt32(const System::ArrayPtr<uint8_t>&, int)Convertit quatre octets du tableau spécifié à partir de l’index spécifié en valeur entière non signée 32 bits.
static ToUInt32(const System::Details::ArrayView<uint8_t>&, int)Convertit quatre octets du tableau spécifié à partir de l’index spécifié en valeur entière non signée 32 bits.
static ToUInt64(const System::ArrayPtr<uint8_t>&, int)Convertit huit octets du tableau spécifié à partir de l’index spécifié en valeur entière non signée 64 bits.
static ToUInt64(const System::Details::ArrayView<uint8_t>&, int)Convertit huit octets du tableau spécifié à partir de l’index spécifié en valeur entière non signée 64 bits.

Champs

ChampDescription
static IsLittleEndianIndique l’endianness de l’architecture actuelle. true si l’architecture est little endian, false sinon.

Remarques

#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()
{
  // Crée des valeurs à imprimer.
  int anInt = 1234567890;
  double aDouble = 0.123456789;

  // Imprime la valeur et ses octets.
  Print(anInt);
  Print(aDouble);

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

Voir aussi