base_convert
ceil
Fonctions Math
PHP Manual

# bindec

(PHP 4, PHP 5)

bindec — Convertit de binaire en décimal

### Description

number bindec ( string `$binary_string` )

Retourne la conversion d'un nombre binaire représenté par la chaîne `binary_string` en décimal.

bindec() convertie un nombre binaire en un entier, ou, si nécessaire (pour des raisons de taille), en nombre décimal.

bindec() interprète toutes les valeurs `binary_string` comme des valeurs non-signées entières. Ceci est dû au fait que la fonction bindec() voit l'octet le plus significatif comme ayant plus de poids que l'octet représentant le signe.

### Liste de paramètres

`binary_string`

  La chaîne binaire à convertir.

Avertissement

Ce paramètre doit être une chaîne de caractères. L'utilisation d'un autre type de données produit des résultats inattendus.

### Valeurs de retour

La valeur décimale de `binary_string`

### Historique

Version | Description
--- | ---
Depuis la version 4.1.0 | Cette fonction peut maintenant convertir des nombres trop grand pour être contenu dans le type entier de la plate-forme ; les valeurs seront, dans ce cas, retournées sous la forme d'un nombre décimal.

### Exemples

Exemple #1 Exemple avec bindec()

`<?php
echo bindec('110011') . "\n";
echo bindec('000110011') . "\n";
echo bindec('111');
?>`

L'exemple ci-dessus va afficher :

    51
    51
    7

Exemple #2 bindec() interprète l'entrée comme un entier non-signé

`<?php
/*
* Le plus important dans cet exemple est dans la sortie
* plutôt que dans le code PHP lui-même.
*/
$magnitude_lower = pow(2, (PHP_INT_SIZE * 8) - 2);
p($magnitude_lower - 1);
p($magnitude_lower, 'Avez-vous vu le changement ? Soyez attentif la prochaine fois...');
p(PHP_INT_MAX, 'PHP_INT_MAX');
p(~PHP_INT_MAX, 'interprété comme étant supérieur à PHP_INT_MAX');
if (PHP_INT_SIZE == 4) {
$note = 'interprété comme étant le plus grand entier non-signé';
} else {
$note = 'interprété comme étant le plus grand entier non-signé
(18446744073709551615) mais faussé par la précision de la virgule flottante';
}
p(-1, $note);
function p($input, $note = '') {
echo "entrée : $input\n";
$format = '%0' . (PHP_INT_SIZE * 8) . 'b';
$bin = sprintf($format, $input);
echo "binaire : $bin\n";
ini_set('precision', 20); // Pour plus de lisibilité sur les PC 64 bits.
$dec = bindec($bin);
echo 'bindec() : ' . $dec . "\n";
if ($note) {
echo "Note : $note\n";
}
echo "\n";
}
?>`

Résultat de l'exemple ci-dessus sur une machine 32 bits :

    entrée :        1073741823
    binaire :       00111111111111111111111111111111
    bindec() :     1073741823

    entrée :        1073741824
    binaire :       01000000000000000000000000000000
    bindec():     1073741824
    Note :         Avez-vous vu le changement ? Soyez attentif la prochaine fois...

    entrée :        2147483647
    binaire :       01111111111111111111111111111111
    bindec():     2147483647
    Note :         PHP_INT_MAX

    entrée :        -2147483648
    binaire :       10000000000000000000000000000000
    bindec():     2147483648
    Note :         interprété comme étant supérieur à PHP_INT_MAX

    entrée :        -1
    binaire :       11111111111111111111111111111111
    bindec():     4294967295
    Note :         interprété comme étant le plus grand entier non-signé

Résultat de l'exemple ci-dessus sur une machine 64 bits :

    entrée :        4611686018427387903
    binaire :       0011111111111111111111111111111111111111111111111111111111111111
    bindec() :     4611686018427387903

    entrée :        4611686018427387904
    binaire :       0100000000000000000000000000000000000000000000000000000000000000
    bindec() :     4611686018427387904
    Note :         Avez-vous vu le changement ? Soyez attentif la prochaine fois...

    entrée :        9223372036854775807
    binaire :       0111111111111111111111111111111111111111111111111111111111111111
    bindec() :     9223372036854775807
    Note :         PHP_INT_MAX

    entrée :        -9223372036854775808
    binaire :       1000000000000000000000000000000000000000000000000000000000000000
    bindec() :     9223372036854775808
    Note :         interprété comme étant supérieur à PHP_INT_MAX

    entrée :        -1
    binaire :       1111111111111111111111111111111111111111111111111111111111111111
    bindec() :     18446744073709551616
    Note :         interprété comme étant le plus grand entier non-signé
                  (18446744073709551615) mais faussé par la précision de la virgule flottante

### Voir aussi

- decbin() - Convertit de décimal en binaire
- octdec() - Conversion d'octal en décimal
- hexdec() - Convertit de hexadécimal en décimal
- base_convert() - Convertit un nombre entre des bases arbitraires

base_convert
ceil
Fonctions Math
PHP Manual