1

Edited_817

2

Edited_818

3

pas envie de RTFM, mais je suppose que si tu dois préciser deux bases et pas juste une, c'est qu'en sortie tu obtiens une chaîne et pas un entier, non ? donc en utilisant une fonction de conversion chaîne->entier ça devrait passer... (c'est juste un peu stupide parce que ça fait inutilement la conversion entier->décimal->entier, mais bon ^^)

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

4

Bizarre, en PHP le transtypage est automatique habituellement ?!
avatar

5

Edited_819

6

(int) $ta_chaine
avatar

7

Edited_820

8

intval($str) est quand même plus orthodoxe, notamment parce que tu as la garantie qu'il ne modifie pas $str, contrairement à (int)$str qui transforme la variable $str en int sur certaines versions de php.

Nil> les conversions sont automatiques...quand elles sont nécessaires. Si l'interpréteur peut réaliser une opération sans convertir il le fera, et ça fait pas forcément ce que tu voulais.

Par exemple (exemple débile mais faut bien trouver un truc)
$test = true;
echo "$test ";
$test++;
echo "$test ";
$test = intval($test);
$test++;
echo "$test\n";


Ce code affichera 1 1 2

9

Edited_821

10

$bias = 0;
if ($codehex>="80000000") {
  $codehex[0] = base_convert($codehex[0],16,10)-8; // ou l'équivalent php
  $bias = -2147483648;
}
$code = base_convert($codehex, 16, 10);
$code = intval($code)+$bias;

print "$code<br>"; 

?

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

11

(cross)
0xA623CA9C ne rentre pas dans un int signé. C'est peut-être ça...
avatar

12

oui, c'est ce que vient de dire Pollux ^^

13

Ha oui ? Tiens, pourquoi j'ai écrit (cross) ? wink
avatar