bonjour à tous ! voila je dois créer un programme permettant de convertir en utf en c++ mais j'ai du mal...
actuellement j'ai plusieurs fonctions permettant partir de ma chaine de caractère de convertir en binaire mon code hexa mais là je bloque sur le fait que je dois regarder le nombre d'octet pour insérer du code selon le nombre d'octect pour arriver a une conversion en utf
Je ne sais pas comment faire pour insérer ça :
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116 int binTodec(string b){ int returned = 0; for(unsigned int i=0; i<b.size();i++) if(b[i] == '1') returned += pow(2,b.size()-i-1); return returned; } string hexToBin(string hexa){ string binaire; for(unsigned int i=0;i<hexa.size();i++){ switch(hexa[i]){ case 0 : binaire +="0000"; break; case 1 : binaire +="0001"; break; case 2 : binaire +="0010"; break; case 3 : binaire +="0011"; break; case 4 : binaire +="0100"; break; case 5 : binaire +="0101"; break; case 6 : binaire +="0110"; break; case 7 : binaire +="0111"; break; case 8 : binaire +="1000"; break; case 9 : binaire +="1001"; break; case 10 : binaire +="1010"; break; case 11 : binaire +="1011"; break; case 12 : binaire +="1100"; break; case 13 : binaire +="1101"; break; case 14 : binaire +="1110"; break; case 15 : binaire +="1111"; break; } } return binaire; } string removeZeroLeft(string hex){ string result = ""; int idBegin = 0; while(hex[idBegin] != '1') idBegin ++; for(int i=idBegin; i < hex.size(); ++i) result += hex[i]; return result; } int binToOtect(string result){ string octect; if(binTodec(result) <= 127){ } if(binTodec(result) <= 2047 && binTodec(result) >127){ } if(binTodec(result) >= 2047 && binTodec < 65534){ } if(binTodec(result) <= 65 534 && binTodec >= 1 048 575){ } }
U+0000 à U+007F 0xxxxxxx 00 à 7F 1 octet codant 1 à 7 bits
U+0080 à U+07FF 110xxxxx 10xxxxxx C2 à DF 2 octets codant 8 à 11 bits
U+0800 à U+0FFF 11100000 101xxxxx 10xxxxxx
Partager