Accueil > > > CONVERSION ASCII-8 - BINAIRE
CONVERSION ASCII-8 - BINAIRE
Information sur la source
Description
Salut; Voici une classe à but pédagogique qui convertit un "string ascii" vers un "string binaire". En .Net, la classe String stocke les données en Unicode (le format est propre à .net). Ce format est toutefois "Ascii Compatible" comme l'UTF-8. Voilà pourquoi je me permets de dire "string ascii". Ce code permettra aux débutants de voir l'utilité des opérateurs binaires. En effet, je m'en sers ici beaucoup pour la conversion. Le code est aussi très bien commenté.
Source
using System;
using System.Text;
namespace AsciiBinary
{
class AsciiBinaryConverter
{
#region BinaryToAscii
public static string BinaryToAscii(string bin, bool display)
{
//chaine contenant le texte final
string ascii = null;
//charAsciiCode : code ascii du caractère 8 bits
//j : indicateur pour les opérations binaires
//j : 10000000 (en binaire)
int charAsciiCode = 0, j = 1 << 7;
//on s'assure que la taille est un multiple de 8
if ((bin.Length % 8) != 0) throw new Exception("La longueur de la chaine n'est pas divisible par huit.");
//on parcoure le tableau
for (int i = 0; i < bin.Length; i++)
{
//si on rencontre un 1 alors...
if (bin[i] == '1')
{
//l'opérateur binaire | (ou)
//permet de placer le bit de j sur charAsciiCode
//exemple :
//j : 00100000
//charAsciiCode : 10000000
//alors j | charAsciiCode = 10100000
charAsciiCode = j | charAsciiCode;
}
//on s'assure que le caractère n'est pas différent de 1 et de 0
else if (bin[i] != '0') throw new Exception("Seulement les caractères 1 et 0 sont acceptés.");
//à chaque 8 caractères analysés (dans le string bin)...
if (((i+1) % 8) == 0 && i > 0)
{
//on transforme charAsciiCode en carctère et on l'ajoute à la chaine finale (ascii)
ascii += (char)charAsciiCode;
//si diplay == true, on affiche le code binaire + le carctère
if (display) Console.WriteLine(bin.Substring(i - 7, 8) + " : " + (char)charAsciiCode);
//j est remis sur 128 : 10000000 (en binaire)
j = 1 << 7;
//charAsciiCode est remis à 0 : 00000000 (en binaire)
charAsciiCode = 0;
}
//sinon on décale le bit de j vers la droite
//exemple :
//j initiale : 01000000
//j après >> 1 : 00100000
else j = j >> 1;
}
//retourne la chaine ascii
return ascii;
}
public static string BinaryToAscii(string bin)
{
return BinaryToAscii(bin, false);
}
#endregion
#region AsciiToBinary
public static string AsciiToBinary(string ascii, bool display)
{
//chaine contenant le code binaire final
string binary = null;
//j : indicateur pour les opérations binaires
int j = 0;
//on parcourt la chaine ascii
for (int i = 0; i < ascii.Length; i++)
{
//j est mis sur 128 : 10000000 (en binaire)
j = 1 << 7;
if(display) Console.Write(ascii[i] + " :\t");
//durant cette boucle, le bit 1 de j sera déplacé vers la droite
for (int k = 0; k < 8; k++)
{
//si l'opérateur & (AND) est différent de 0
if ((ascii[i] & j) != 0)
{
//ajouter le caractère 1 à la chaine binary
if (display) Console.Write("1");
binary += "1";
}
//sinon
else
{
//ajouter le caractère 0 à la chaine binary
if (display) Console.Write("0");
binary += "0";
}
//on décale le bit de j vers la droite
//exemple :
//j initiale : 01000000
//j après >> 1 : 00100000
j = j >> 1;
}
if (display) Console.WriteLine();
}
//on retourne le code binaire de ascii sous forme de string
return binary;
}
public static string AsciiToBinary(string ascii)
{
return AsciiToBinary(ascii, false);
}
#endregion
}
}
Conclusion
Des lectures interessantes : http://developpeur.journaldunet.com/tutoriel/the o/031126theo_bit1a.shtml (Opérateurs binaires) http://developpeur.journaldunet.com/tuto riel/theo/031126theo_bit1a.shtml (ASCII -7) http://fr.wikipedia.org/wiki/ISO_8859-1 (Latin-1 ASCII ÉTENDUE) http://www.labo-dotnet.com/articles/Cshar p/Unicode-et-dotNET/0/1720.aspx (Unicode et .net) ....
Sources du même auteur
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
Conversion ASCII vers caractere [ par f4bkb ]
Bonjour,je suis nouveau sur ce forum et novice dans ce language de prog. Pour débuter je voudrais developper une petite application qui converti un in
conversion string en int, byte, hexa [ par vinc524 ]
C#bonjour, je cherche désespérémment un moyen pour convertir une chaine de caractere string en hexadecimal. En fait je voudrais le code ascii d'un car
conversion [ par yassinchaouki ]
Bonjour,Est ce qu'il y a une fonction en c# qui fait la converion du code html en code ASCII ex:&nbsp; (code htm de l'epace)
c# --> Probleme conversion hexadecimal en binaire [ par julbuttt ]
Bonjour, voila, dans mon code je recois de l'hexadecimal que je transforme en binaire, et le probleme est que si j'ai au debut de l'hexa des zéros pui
conversion hexa en binaire [ par amzerd ]
bonjour je suis débutans en c# , je voulasi seulement savoir comment on fait une conversion de haxa2binn avec c# c'est trés urgent merciiiii !!!!!!
lire un fichier binaire [ par ultrafil ]
Salut, j'ai besoin de lire des données dans un fichier binaire.Mon problème c'est que je n'arrive pas à faire de conversion en byte[]Je m'explique, j'
conversion int en ASCII [ par jesaipa_1 ]
Slt a tous, je n'arrive pas a renvoyer le code ascii d'un int Merci.
Conversion manuelle d'un nombre en binaire, décimal et hexadécimal, Aidez-moi, je débute... [ par Acidkepler ]
Bonjour, je dois convertir un nombre que j'entre dans un textBox, soit, à l'aide de boutons, en binaire, décimal ou héxadécimal, s
conversion [ par RM50Man ]
Bonjour,Comment convertir ce code de c# en vb if ( m.Msg == WM_KEYDOWN && m.WParam == (IntPtr)Keys.Escape) {le convertisseur me donne ca </F
Le code ASCII [ par yassinchaouki ]
Bonjour,Est ce qu'il y a une fonction en C# qui retourne le code ASCII d'un caractére passé en paramétre.Cordialement.
|
Derniers Blogs
IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc SHAREPOINT BLOG SITE, PROBLèME D'ARCHIVESSHAREPOINT BLOG SITE, PROBLèME D'ARCHIVES par junarnoalg
Dernièrement, nous avons migré le site
myTIC
vers un nouveau serveur SharePoint 2010. Dans les contenus que nous vouloins récupérer, nous avions un certain nombre de blogs.
Nous avons utilisé les commandes Power...
Cliquez pour lire la suite de l'article par junarnoalg
Forum
LINQLINQ par okosa
Cliquez pour lire la suite par okosa
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|