Valeur d'un Byte [Résolu]

Signaler
Messages postés
125
Date d'inscription
dimanche 28 février 2010
Statut
Membre
Dernière intervention
21 juin 2015
-
Messages postés
125
Date d'inscription
dimanche 28 février 2010
Statut
Membre
Dernière intervention
21 juin 2015
-
Bonjour ! Encore moi

Bon un petit problème rapide soumis au expert.

string bcbinaire = Convert.ToString(mbc, 2).PadLeft(8, '0');

char[] chars = bcbinaire.ToCharArray();
Array.Reverse(chars);
string bcbinaireinverse = new String(chars);

Byte bdc1 = Convert.ToByte(bcbinaireinverse);

Pofffff ! ERREUR !
La valeur était trop grande ou trop petite pour un octet non signé.
le but est que je vais faire ca apres .

Byte Broad1 = (byte)(~ip1 | ~bdc1);
Quelqu'un aurait une idée pour cela ?
Merci d'avance.

Linux c'est une question de VI ou de MORE !
Si Bill Gates donnait du lait à ses programmeurs, ça ferait peut-être des OS costaud.

6 réponses

Messages postés
834
Date d'inscription
samedi 15 novembre 2008
Statut
Membre
Dernière intervention
14 janvier 2017
30
Bonjour

si tu es en .net 3.5

byte reverse_mbc = Convert.ToByte(new string(Convert.ToString(mbc, 2).PadLeft(8, '0').Reverse().ToArray()),2);


Note : pense à mettre :
using System.Linq;


Bob
C# is amazing, enjoy it!
Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
32
Salut,

La classe bit array peut t'aider
http://msdn.microsoft.com/en-us/library/system.collections.bitarray.aspx

ensuite
http://msdn.microsoft.com/en-us/library/b1kwkfdz.aspx

Avec c'est 2 methodes tu devrais y arriver.
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
92
Salut,

Convert.ToByte(String) et Byte.Parse(String) prennent du base 10 en entrée, pas du base 2.

Convert.ToByte(String, Int32) permet de gérer d'autres bases, mais dans le cas présent je ne vois du coup pas trop l'intérêt.


/*
coq
MVP Visual C#
CoqBlog
*/
Messages postés
125
Date d'inscription
dimanche 28 février 2010
Statut
Membre
Dernière intervention
21 juin 2015
2
Coucou , merci pour les réponses . nbervagault j'étudie ton truc , pas facile encore .

Coq , ça me semblait bien mais quand je fais
Convert.ToByte(String, Int32) ça me fais l'exception :
Int32 est un type mais utilisé comme une variable :'(

Linux c'est une question de VI ou de MORE !
Si Bill Gates donnait du lait à ses programmeurs, ça ferait peut-être des OS costaud.
Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
32
Il faut aller voir msdn

http://msdn.microsoft.com/en-us/library/c7xhf79k.aspx

C'est les signature que coq a mis
il faut faire un peu de recherche et pas copier betement les codes postés ;-)
il faut chercher a comprendre ce qui est dit.
Messages postés
125
Date d'inscription
dimanche 28 février 2010
Statut
Membre
Dernière intervention
21 juin 2015
2
Super Robert ça marche niquel ! Je me demande d'où vous pouvez connaitre tous ça :o.

Plus qu'a faire un OU-NON entre mon ip et mon masque inverse et ça devrais me donner le broadcast !
Byte Broad1 = (byte)(~ip1 | ~mbc); Ça devrais le faire je pense ?
Ah je suis content :D.

Linux c'est une question de VI ou de MORE !
Si Bill Gates donnait du lait à ses programmeurs, ça ferait peut-être des OS costaud.