Salut à tous, voila je débute en pascal et voulant developpez une fonction qui transforme un code 16 bit vers un entier j'ai décider dans un premier temps de faire ce code que je pensais retravailler ensuite :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
 
function code_binaire_16_vers_entier_signe_comp_2 (code_binaire: string): integer;
var
	entier: integer;
	num: integer;
begin
	Val(code_binaire[16], num);
	entier := num * 1;
	Val(code_binaire[15], num);
	entier := entier + (num * 2);
	Val(code_binaire[14], num);
	entier := entier + (num * 4);
	Val(code_binaire[13], num);
	entier := entier + (num * 8);
	Val(code_binaire[12], num);
	entier := entier + (num * 16);
	Val(code_binaire[11], num);
	entier := entier + (num * 32);
	Val(code_binaire[10], num);
	entier := entier + (num * 64);
	Val(code_binaire[9], num);
	entier := entier + (num * 128);
	Val(code_binaire[8], num);
	entier := entier + (num * 256);
	Val(code_binaire[7], num);
	entier := entier + (num * 512);
	Val(code_binaire[6], num);
	entier := entier + (num * 1024);
	Val(code_binaire[5], num);
	entier := entier + (num * 2048);
	Val(code_binaire[4], num);
	entier := entier + (num * 4096);
	Val(code_binaire[3], num);
	entier := entier + (num * 8192);
	Val(code_binaire[2], num);
	entier := entier + (num * 16384);
	Val(code_binaire[1], num);
	entier := entier + (num * 32768);
	code_binaire_16_vers_entier_signe_comp_2:= entier;
end;
Mais voila quand passe 111111111111110 en parametre il me renvoie bien -3, tout seul, comme un grand, quelqun pourrait m'expliquer pourquoi ?

Merci d'avance