bonjour à vous, je veux convertir un nombre réel en un nombre binaire. je vous remercie d'avance
bonjour à vous, je veux convertir un nombre réel en un nombre binaire. je vous remercie d'avance
bonjour
google ==> "C# Convert float to binary string"
je demande une réponse pas une question!!!!
c'est une réponse
et la réponse est cherche sur google car la réponse s'y trouve !!!
Une question posé sur le forum ne devrait exister que parce que, soit la recherche sur google est vraiment compliquée soit parce que la question est réellement
spécifique...
D'autre part, tu trouveras surement une réponse plus rapide à ce genre de question via google que via ici (surtout un dimanche)...
Maintenant, si tu veux vraiment une réponse rapide et que tu n'es pas près à faire des recherches, payes quelqu'un pour le faire à ta place...
Ya 2 jours, il y a un article qui expliquait que les débutants avaient parfois du mal à avoir des réponses, tu es parfaitement dans la catégorie des nouveaux arrivants, qui exigent
une réponse, ne font aucun effort apparent pour chercher, etc...
Le genre de post qui me casse sévèrement les fondements !!!
J'ai pris 10 secondes pour taper ce que je t'ai dit dans "google"
et j'ai trouvé celà qui me semble être une bonne réponse...
http://stackoverflow.com/questions/2...onversion-in-c
Fin d'intervention pour moi...
bonjour
La question ,comme dit par TheMonz231 ,s'apparente à ca :"je veux un dessert de bananes passes au blinder,car macher ,c'est penible "....je veux convertir un nombre réel en un nombre binaire. je vous remercie d'avance
1/ Un nombre reel au sens mathematique est une abstraction qui n'existe pas en informatique
2/ Les nombres reels mathematiques ont 2 representants (delegues en chair et en os ) binaires (base 2) qui PRETENDENT les representer :
- le type Double represente sur 8 octets (bytes en anglais) un reel...
- type Float represente sur 4 octets un reel...
La difference entre les 2 est que double est plus précis que single (rappel :la precision d'un nombre est lie au nbre de chiffres utilises pour reprensenter sa valeur : 23.335 est plus précis que 23.35)..
Que veux-tu exactement ?
1/ Veux-tu inspecter les octets d'un double ou d'un reel ou les assigner ?
si c'est le cas le class BitConvrter() est ton ami...Sa methode statique GetBytes(value) restitue un tableau d'octets du nombre fourni (int,long,double,single,boolean etc...)
2/ Veux-tu inspecter une representation sous forme de chaine des bits (1 et 0) de chacun des octets d'un double ,d'un float ,un int pour les afficher (pour une CONTEMPLATION et MEDITATION)
- le class Bitarray ( qui stocke un tableau de bit -zero ou un) vient au secours du class BitConverter .....
Une fois ton "reel",pardon ton Double ou Single converti en tableau d'octets par BitConverter , il est donne à BitArray qui se charge de dissequer -bit à-bit chaque octet ....
Les elements de BitArray sont des Booleans (true-false,true =>1,false =>0)....
behind .cs d'un form qui
- affiche les valeurs des octets d'un float qui vaut 3.0f
- affiche la representation chaine sous forme de "0" et "1" de chaque octet d'un int qui vaut 3 et d'un float qui 3.0f
- le premier affichage permet d'interpreter les bits du second mais il faut connaitre la norme IE et les valeurs du -bias de l'exposant et comment est calculer la mantisse en binaire pour un float ...
bon code....
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
117
118
119
120
121
122
123 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Collections; namespace WinBitArray { public partial class Form2 : Form { private StringBuilder sb = new StringBuilder(); public Form2() { InitializeComponent(); } // que valent les 4 octets d'un float ??? private void btnBitCnvAndBitAr_Click(object sender, EventArgs e) { sb.Clear(); float value = 3.0f; // // Invoke BitConverter.GetBytes to convert float to bytes. // byte[] array = BitConverter.GetBytes(value); foreach (byte element in array) { sb.Append(element); sb.Append("-"); } // // You can convert the bytes back to a float. // float result = BitConverter.ToSingle(array, 0); sb.AppendLine(); sb.Append(result); this.label1.Text = sb.ToString(); } // contemplons les bits d'un int private void btnBitArInt_Click(object sender, EventArgs e) { sb.Clear(); BitArray myBA = null; byte[] intBytes = null; int N1 = 3; intBytes = BitConverter.GetBytes(N1); myBA = new BitArray(intBytes); sb.AppendLine("-------N1--------------------"); PrintValues(myBA, 8); int N2 = -3; intBytes = BitConverter.GetBytes(N2); myBA = new BitArray(intBytes); sb.AppendLine(); sb.AppendLine("-------N2--------------------"); PrintValues(myBA, 8); this.label2.Text = sb.ToString(); } // contemplons les bits d'un float ...ca dnnne le vertige // mais alors un double c'est encore plus long comme un jour de ramadan...!!! private void btnBitArFloat_Click(object sender, EventArgs e) { sb.Clear(); BitArray myBA = null; byte[] floatBytes = null; float F1 = 3.0f; floatBytes = BitConverter.GetBytes(F1); myBA = new BitArray(floatBytes); sb.AppendLine("-------F1--------------------"); PrintValues(myBA, 8); float F2 = -3.0f; floatBytes = BitConverter.GetBytes(F2); myBA = new BitArray(floatBytes); sb.AppendLine(); sb.AppendLine("-------F2--------------------"); PrintValues(myBA, 8); this.label3.Text = sb.ToString(); } public void PrintValues(IEnumerable myList, int myWidth) { string formatter = "{0:8}"; int i = myWidth; foreach (Object obj in myList) { if (i <= 0) { i = myWidth; sb.Append("-"); } i--; string b = (bool)obj == true ? "1" : "0"; sb.Append(String.Format(formatter, b)); } } // } }
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager