Classe System::BitConverter

BitConverter class

Contiene metodi che eseguono conversioni di sequenze di byte in un tipo valore e viceversa. Questo è un tipo statico senza servizi di istanza. Non dovresti mai creare istanze di esso in alcun modo.

class BitConverter

Metodi

MetodoDescrizione
static _IsLittleEndian()Indica l’endianness dell’architettura corrente.
static DoubleToInt64Bits(double)Restituisce un valore intero a 64 bit la cui rappresentazione binaria è uguale alla rappresentazione binaria del valore a virgola mobile a doppia precisione specificato.
static GetBytes(bool)Converte il valore booleano specificato in un array di byte.
static GetBytes(char_t)Converte il valore char_t specificato in un array di byte.
static GetBytes(int16_t)Converte il valore intero a 16 bit specificato in un array di byte.
static GetBytes(int)Converte il valore intero a 32 bit specificato in un array di byte.
static GetBytes(int64_t)Converte il valore intero a 64 bit specificato in un array di byte.
static GetBytes(uint16_t)Converte il valore intero senza segno a 16 bit specificato in un array di byte.
static GetBytes(uint32_t)Converte il valore intero senza segno a 32 bit specificato in un array di byte.
static GetBytes(uint64_t)Converte il valore intero senza segno a 64 bit specificato in un array di byte.
static GetBytes(float)Converte il valore a virgola mobile a precisione singola specificato in un array di byte.
static GetBytes(double)Converte il valore a virgola mobile a doppia precisione specificato in un array di byte.
static Int64BitsToDouble(int64_t)Restituisce un valore a virgola mobile a doppia precisione il cui valore è equivalente a value.
static ToBoolean(const System::ArrayPtr<uint8_t>&, int)Converte un byte dall’array specificato a partire dall’indice specificato in valore booleano.
static ToBoolean(const System::Details::ArrayView<uint8_t>&, int)Converte un byte dall’array specificato a partire dall’indice specificato in valore booleano.
static ToChar(const System::ArrayPtr<uint8_t>&, int)Converte due byte dall’array specificato a partire dall’indice specificato in valore char_t.
static ToChar(const System::Details::ArrayView<uint8_t>&, int)Converte due byte dall’array specificato a partire dall’indice specificato in valore char_t.
static ToDouble(const System::ArrayPtr<uint8_t>&, int)Converte otto byte dall’array specificato a partire dall’indice specificato in valore a virgola mobile a doppia precisione.
static ToDouble(const System::Details::ArrayView<uint8_t>&, int)Converte otto byte dall’array specificato a partire dall’indice specificato in valore a virgola mobile a doppia precisione.
static ToInt16(const System::ArrayPtr<uint8_t>&, int)Converte due byte dall’array specificato a partire dall’indice specificato in valore intero a 16 bit.
static ToInt16(const System::Details::ArrayView<uint8_t>&, int)Converte due byte dall’array specificato a partire dall’indice specificato in valore intero a 16 bit.
static ToInt32(const System::ArrayPtr<uint8_t>&, int)Converte quattro byte dall’array specificato a partire dall’indice specificato in valore intero a 32 bit.
static ToInt32(const System::Details::ArrayView<uint8_t>&, int)Converte quattro byte dall’array specificato a partire dall’indice specificato in valore intero a 32 bit.
static ToInt64(const System::ArrayPtr<uint8_t>&, int)Converte otto byte dall’array specificato a partire dall’indice specificato in valore intero a 64 bit.
static ToInt64(const System::Details::ArrayView<uint8_t>&, int)Converte otto byte dall’array specificato a partire dall’indice specificato in valore intero a 64 bit.
static ToSingle(const System::ArrayPtr<uint8_t>&, int)Converte quattro byte dall’array specificato a partire dall’indice specificato in valore a virgola mobile a precisione singola.
static ToSingle(const System::Details::ArrayView<uint8_t>&, int)Converte quattro byte dall’array specificato a partire dall’indice specificato in valore a virgola mobile a precisione singola.
static ToString(const ArrayPtr<uint8_t>&, bool, const String&)Converte tutti i valori dell’array di byte specificato nella loro rappresentazione stringa esadecimale. Il caso delle lettere da utilizzare nella notazione esadecimale e il separatore inserito tra ogni coppia di byte adiacenti sono specificati tramite gli argomenti corrispondenti.
static ToString(const ArrayPtr<uint8_t>&, int)Converte i valori dell’array di byte specificato nella loro rappresentazione stringa esadecimale a partire dall’indice specificato.
static ToString(const ArrayPtr<uint8_t>&, int, int)Converte un intervallo di valori dell’array di byte specificato nella loro rappresentazione stringa esadecimale.
static ToUInt16(const System::ArrayPtr<uint8_t>&, int)Converte due byte dall’array specificato a partire dall’indice specificato in valore intero senza segno a 16 bit.
static ToUInt16(const System::Details::ArrayView<uint8_t>&, int)Converte due byte dall’array specificato a partire dall’indice specificato in valore intero senza segno a 16 bit.
static ToUInt32(const System::ArrayPtr<uint8_t>&, int)Converte quattro byte dall’array specificato a partire dall’indice specificato in valore intero senza segno a 32 bit.
static ToUInt32(const System::Details::ArrayView<uint8_t>&, int)Converte quattro byte dall’array specificato a partire dall’indice specificato in valore intero senza segno a 32 bit.
static ToUInt64(const System::ArrayPtr<uint8_t>&, int)Converte otto byte dall’array specificato a partire dall’indice specificato in valore intero senza segno a 64 bit.
static ToUInt64(const System::Details::ArrayView<uint8_t>&, int)Converte otto byte dall’array specificato a partire dall’indice specificato in valore intero senza segno a 64 bit.

Campi

CampoDescrizione
static IsLittleEndianIndica l’endianness dell’architettura corrente. true se l’architettura è little endian, false altrimenti.

Osservazioni

#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()
{
  // Crea valori da stampare.
  int anInt = 1234567890;
  double aDouble = 0.123456789;

  // Stampa il valore e i suoi byte.
  Print(anInt);
  Print(aDouble);

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

Vedi anche