1
+
2
+ // Ne pas faire de warning s'il y a des parenthèses en trop autour des conditions des if
3
+ #![ allow( unused_parens) ]
4
+
5
+ // Ne pas faire de warning si des fonctions ne sont pas appelées
6
+ #![ warn( dead_code) ]
7
+
8
+ use std:: fmt:: { Write } ;
9
+
10
+ pub fn conversions_entier ( )
11
+ {
12
+
13
+ // Ecriture de valeurs décimales / hexadécimales / binaires / octales
14
+ // dans le code Rust
15
+ let v_dec: u64 = 37 ;
16
+ let v_hex: u64 = 0x25 ;
17
+ let v_bin: u64 = 0b100101 ;
18
+ let v_oct: u64 = 0o45 ;
19
+ assert_eq ! ( v_dec, v_hex, "Erreur dans la conversion (1)" ) ;
20
+ assert_eq ! ( v_dec, v_bin, "Erreur dans la conversion (2)" ) ;
21
+ assert_eq ! ( v_dec, v_oct, "Erreur dans la conversion (3)" ) ;
22
+
23
+
24
+ // Conversion décimal -> string hexa, binaire, octale
25
+ let s_hex_verif: String = "0x25" . to_string ( ) ;
26
+ let s_bin_verif: String = "0b100101" . to_string ( ) ;
27
+ let s_oct_verif: String = "0o45" . to_string ( ) ;
28
+ let mut s: String = String :: new ( ) ;
29
+
30
+ write ! ( s, "{:#x}" , v_dec) . expect ( "Erreur dans writeln (1)" ) ;
31
+ assert_eq ! ( s, s_hex_verif, "Erreur dans la conversion (4)" ) ;
32
+
33
+ s = "" . to_string ( ) ;
34
+ write ! ( s, "{:#b}" , v_dec) . expect ( "Erreur dans writeln (2)" ) ;
35
+ assert_eq ! ( s, s_bin_verif, "Erreur dans la conversion (5)" ) ;
36
+
37
+ s = "" . to_string ( ) ;
38
+ write ! ( s, "{:#o}" , v_dec) . expect ( "Erreur dans writeln (3)" ) ;
39
+ assert_eq ! ( s, s_oct_verif, "Erreur dans la conversion (6)" ) ;
40
+
41
+
42
+ // Conversion string hexa, binaire, octale -> décimal
43
+ let v = u64:: from_str_radix ( & s_hex_verif[ 2 ..] , 16 ) . expect ( "Erreur dans u64::from_str_radix (1)" ) ;
44
+ assert_eq ! ( v, v_dec, "Erreur dans la conversion (7)" ) ;
45
+
46
+ let v = u64:: from_str_radix ( & s_bin_verif[ 2 ..] , 2 ) . expect ( "Erreur dans u64::from_str_radix (2)" ) ;
47
+ assert_eq ! ( v, v_dec, "Erreur dans la conversion (8)" ) ;
48
+
49
+ let v = u64:: from_str_radix ( & s_oct_verif[ 2 ..] , 8 ) . expect ( "Erreur dans u64::from_str_radix (3)" ) ;
50
+ assert_eq ! ( v, v_dec, "Erreur dans la conversion (9)" ) ;
51
+
52
+ }
0 commit comments