Prototype
static char* EDivers::IntegerNumberToBinaryStringConvertA( ulonglong ullInteger,
uchar ucByteCount,
BOOL bSeparatorInsert );

static wchar_t* EDivers::IntegerNumberToBinaryStringConvertW( ulonglong ullInteger,
uchar ucByteCount,
BOOL bSeparatorInsert );

static TCHAR* EDivers::IntegerNumberToBinaryStringConvert( ulonglong ullInteger,
uchar ucByteCount,
BOOL bSeparatorInsert );

Cette fonction convertit l'entier ullInteger en son équivalent binaire sous la forme d'une chaîne de caractères.

Le premier prototype est à utiliser si l'on désire recevoir une chaîne de caractères au format ASCII, le deuxième pour recevoir une chaîne de caractères au format Unicode.

Le troisième protoype retourne une chaîne de caractères au format prédéfini par le projet. Si votre projet est configuré pour utiliser le format ASCII, la chaîne de caractères retournée sera au format ASCII (char*), par contre si votre projet est configuré pour utiliser le format Unicode, la chaîne de caractères retournée sera au format Unicode (wchar_t*).

Attention, le pointeur retourné doit être libéré, par votre propre soin, lorsque l'on en a plus l'utilité par la fonction standard free (si le pointeur retourné est différent de NULL, bien sûr).

 

Argument

ulonglong ullInteger

valeur de l'entier à convertir.

Vous pouvez spécifier des valeurs de type char à des valeurs de type ulonglong.

uchar ucByteCount

indique le nombre de bloc de huits bits à spécifier dans la chaîne de caractères à retourner.

- Pour un entier de type char ou uchar, spécifiez 1,
- pour un entier de type short ou ushort, spécifiez 2,
- pour un entier de type int ou uint ou long ou ulong, spécifiez 4,
- pour un entier de type longlong ou ulonglong, spécifiez 8.

Si vous spécifiez des valeurs différentes de 1, 2, 4 ou 8, la fonction retourne NULL.

BOOL bSeparatorInsert

insérer (Oui=TRUE, Non=FALSE) un espace entre chaque représentation de bloc de huit bits.

 

Retour

char*
wchar_t*

suivant la version de la fonction appelée, soit un pointeur de type char ou wchar_t est retourné.

Ce pointeur peut être NULL si la fonction a échouée dans la conversion.

 

Exemple

Description :

• Conversion de la valeur 100 en binaire sous la forme d'une chaîne de caractères au format ASCII sur 1 octet avec insertion d'espaces de séparation, puis affichage.

• Conversion de la valeur 4000000000 en binaire sous la forme d'une chaîne de caractères au format Unicode sur 4 octets sans insertion d'espaces de séparation, puis affichage.

• Conversion de la valeur 9000000000000000000 en binaire sous la forme d'une chaîne de caractères au format selon les définitions du projet sur 8 octets avec insertion d'espaces de séparation, puis affichage.

Code :

char *pszStringAscii = EDivers::IntegerNumberToBinaryStringConvertA( 100, 1, TRUE );
wchar_t *pszStringUnicode = EDivers::IntegerNumberToBinaryStringConvertW( 4000000000, 4, FALSE );
TCHAR *pszString = EDivers::IntegerNumberToBinaryStringConvert( 9000000000000000000, 8, TRUE );

if ( pszStringAscii )
  {
  ETrace::DoExA( "Représention binaire du l'entier '%d' = %s\n", 100, pszStringAscii );

  // Ne pas oublier de libérer le pointeur renvoyé
  // par la fonction "EDivers::IntegerNumberToBinaryStringConvertA"
  free( pszStringAscii );
  }

if ( pszStringUnicode)
  {
  ETrace::DoExW( L"Représention binaire du l'entier '%u' = %s\n", 4000000000, pszStringUnicode );

  // Ne pas oublier de libérer le pointeur renvoyé
  // par la fonction "EDivers::IntegerNumberToBinaryStringConvertW"
  free( pszStringUnicode );
  }

if ( pszString )
  {
  ETrace::DoEx( _T("Représention binaire du l'entier '%I64u' = %s\n"), 9000000000000000000, pszString );

  // Ne pas oublier de libérer le pointeur renvoyé
  // par la fonction "EDivers::IntegerNumberToBinaryStringConvert"
  free( pszString );
  }

Sortie :

Représention binaire du l'entier '100' = 01100100
Représention binaire du l'entier '4000000000' = 11101110011010110010100000000000
Représention binaire du l'entier '9000000000000000000' = 01111100 11100110 01101100 01010000 11100010 10000100 00000000 00000000

 

Minimum
Version 1.0.0