Lire en anglais

Partager via


Decimal.GetBits Méthode

Définition

Surcharges

GetBits(Decimal)

Convertit la valeur d'une instance de Decimal spécifiée en représentation binaire équivalente.

GetBits(Decimal, Span<Int32>)

Convertit la valeur d'une instance de Decimal spécifiée en représentation binaire équivalente.

GetBits(Decimal)

Source:
Decimal.cs
Source:
Decimal.cs
Source:
Decimal.cs

Convertit la valeur d'une instance de Decimal spécifiée en représentation binaire équivalente.

C#
public static int[] GetBits(decimal d);

Paramètres

d
Decimal

Valeur à convertir.

Retours

Int32[]

Tableau d'entiers signés 32 bits avec quatre éléments qui contiennent la représentation binaire de d.

Exemples

L’exemple suivant utilise la GetBits méthode pour convertir plusieurs Decimal valeurs en représentations binaires équivalentes. Il affiche ensuite les valeurs décimales et la valeur hexadécimale des éléments du tableau retournés par la GetBits méthode .

C#
using System;

class Example
{
   public static void Main()
   {
      // Define an array of Decimal values.
      Decimal[] values = { 1M, 100000000000000M, 10000000000000000000000000000M,
                           100000000000000.00000000000000M, 1.0000000000000000000000000000M,
                           123456789M, 0.123456789M, 0.000000000123456789M,
                           0.000000000000000000123456789M, 4294967295M,
                           18446744073709551615M, Decimal.MaxValue,
                           Decimal.MinValue, -7.9228162514264337593543950335M };

      Console.WriteLine("{0,31}  {1,10:X8}{2,10:X8}{3,10:X8}{4,10:X8}",
                        "Argument", "Bits[3]", "Bits[2]", "Bits[1]",
                        "Bits[0]" );
      Console.WriteLine( "{0,31}  {1,10:X8}{2,10:X8}{3,10:X8}{4,10:X8}",
                         "--------", "-------", "-------", "-------",
                         "-------" );

      // Iterate each element and display its binary representation
      foreach (var value in values) {
        int[] bits = decimal.GetBits(value);
        Console.WriteLine("{0,31}  {1,10:X8}{2,10:X8}{3,10:X8}{4,10:X8}",
                          value, bits[3], bits[2], bits[1], bits[0]);
      }
   }
}
// The example displays the following output:
//                           Argument     Bits[3]   Bits[2]   Bits[1]   Bits[0]
//                           --------     -------   -------   -------   -------
//                                  1    00000000  00000000  00000000  00000001
//                    100000000000000    00000000  00000000  00005AF3  107A4000
//      10000000000000000000000000000    00000000  204FCE5E  3E250261  10000000
//     100000000000000.00000000000000    000E0000  204FCE5E  3E250261  10000000
//     1.0000000000000000000000000000    001C0000  204FCE5E  3E250261  10000000
//                          123456789    00000000  00000000  00000000  075BCD15
//                        0.123456789    00090000  00000000  00000000  075BCD15
//               0.000000000123456789    00120000  00000000  00000000  075BCD15
//      0.000000000000000000123456789    001B0000  00000000  00000000  075BCD15
//                         4294967295    00000000  00000000  00000000  FFFFFFFF
//               18446744073709551615    00000000  00000000  FFFFFFFF  FFFFFFFF
//      79228162514264337593543950335    00000000  FFFFFFFF  FFFFFFFF  FFFFFFFF
//     -79228162514264337593543950335    80000000  FFFFFFFF  FFFFFFFF  FFFFFFFF
//    -7.9228162514264337593543950335    801C0000  FFFFFFFF  FFFFFFFF  FFFFFFFF

L’exemple suivant utilise la GetBits méthode pour récupérer les composants d’un tableau. Il utilise ensuite ce tableau dans l’appel au Decimal(Int32, Int32, Int32, Boolean, Byte) constructeur pour instancier une nouvelle Decimal valeur.

C#
using System;

public class Example
{
   public static void Main()
   {
      Decimal[] values = { 1234.96m, -1234.96m };
      foreach (var value in values) {
         int[] parts = Decimal.GetBits(value);
         bool sign = (parts[3] & 0x80000000) != 0;

         byte scale = (byte) ((parts[3] >> 16) & 0x7F);
         Decimal newValue = new Decimal(parts[0], parts[1], parts[2], sign, scale);
         Console.WriteLine("{0} --> {1}", value, newValue);
      }
   }
}
// The example displays the following output:
//       1234.96 --> 1234.96
//       -1234.96 --> -1234.96

Remarques

La représentation binaire d’un Decimal nombre se compose d’un signe 1 bits, d’un nombre entier de 96 bits et d’un facteur de mise à l’échelle utilisé pour diviser le nombre entier et spécifier quelle partie de celui-ci est une fraction décimale. Le facteur de mise à l’échelle est implicitement le nombre 10, élevé à un exposant compris entre 0 et 28.

La valeur de retour est un tableau de quatre éléments d’entiers signés 32 bits.

Les premier, deuxième et troisième éléments du tableau retourné contiennent les 32 bits inférieurs, intermédiaires et élevés du nombre entier 96 bits.

Le quatrième élément du tableau retourné contient le facteur d’échelle et le signe. Il se compose des parties suivantes :

Les bits 0 à 15, le mot inférieur, ne sont pas utilisés et doivent être zéro.

Les bits 16 à 23 doivent contenir un exposant compris entre 0 et 28, ce qui indique la capacité de 10 à diviser le nombre entier.

Les bits 24 à 30 sont inutilisés et doivent être zéro.

Le bit 31 contient le signe : 0 signifie positif et 1 signifie négatif.

Notez que la représentation de bits fait la différence entre zéro négatif et zéro positif. Ces valeurs sont traitées comme étant égales dans toutes les opérations.

Voir aussi

S’applique à

.NET 10 et autres versions
Produit Versions
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

GetBits(Decimal, Span<Int32>)

Source:
Decimal.cs
Source:
Decimal.cs
Source:
Decimal.cs

Convertit la valeur d'une instance de Decimal spécifiée en représentation binaire équivalente.

C#
public static int GetBits(decimal d, Span<int> destination);

Paramètres

d
Decimal

Valeur à convertir.

destination
Span<Int32>

Étendue dans laquelle stocker la représentation binaire à quatre entiers.

Retours

4, qui est le nombre d’entiers dans la représentation binaire.

Exceptions

L’étendue de destination n’était pas assez longue pour stocker la représentation binaire.

S’applique à

.NET 10 et autres versions
Produit Versions
.NET 5, 6, 7, 8, 9, 10