Accueil > > > PETITE CLASSE POUR LES OPÉRATIONS BINAIRES
PETITE CLASSE POUR LES OPÉRATIONS BINAIRES
Information sur la source
Description
Voilà une petite classe pour réaliser des opérations entre binaires telles que: 01010101 & 00001111 = ? J'ai essayé de mettre toutes les possibilités de constructeurs, idem pour récupérer le binaire.
Source
public class Binary {
private boolean[] _value;
public Binary(char[] val) {
_value = new boolean[val.length];
for (int index = 0; index != val.length; ++index) {
int tmp = -1;
try {
tmp = Integer.parseInt(new String(""+val[index]));
} catch (Exception e) {
throw new IllegalArgumentException("ERROR : This is not a binary String!");
}
switch (tmp) {
case 0 :
_value[index] = false;
break;
case 1:
_value[index] = true;
break;
default:
throw new IllegalArgumentException("ERROR : This is not a binary String!");
}
}
}
public Binary(boolean[] value) {
_value = value.clone();
}
public Binary(String val) {
this(val.toCharArray());
}
public Binary(int val) {
this(Integer.toBinaryString(val));
}
public Binary() {
this(0);
}
public boolean[] toBooleanArray() {
return _value;
}
public char[] toCharArray() {
char[] res = new char[_value.length];
for ( int index = 0; index != _value.length; ++index)
if (_value[index])
res[index] = '1';
else
res[index] = '0';
return res;
}
public String toString() {
return new String(this.toCharArray());
}
public int toInteger() {
int res = 0;
for (int index = 0; index != this.length(); ++index)
if (_value[index])
res += Math.pow(2, this.length() - index -1);
return res;
}
public int length() {
return _value.length;
}
public void setLength(int len) {
boolean[] tmp = new boolean[len];
for (int index = 0; index != len - this.length(); ++index)
tmp[index] = false;
for (int index = len - this.length(); index != len; ++index)
tmp[index] = _value[index - (len - this.length())];
_value = tmp;
}
public Binary and(Binary bin) {
int size = Math.max(this.length(), bin.length());
this.setLength(size);
bin.setLength(size);
boolean[] res = new boolean[size];
for (int index = 0; index != size; ++index) {
res[index] = this.toBooleanArray()[index] && bin.toBooleanArray()[index];
}
return new Binary(res);
}
public Binary or(Binary bin) {
int size = Math.max(this.length(), bin.length());
this.setLength(size);
bin.setLength(size);
boolean[] res = new boolean[size];
for (int index = 0; index != size; ++index) {
res[index] = this.toBooleanArray()[index] || bin.toBooleanArray()[index];
}
return new Binary(res);
}
public Binary xor(Binary bin) {
int size = Math.max(this.length(), bin.length());
this.setLength(size);
bin.setLength(size);
boolean[] res = new boolean[size];
for (int index = 0; index != size; ++index) {
res[index] = this.toBooleanArray()[index] ^ bin.toBooleanArray()[index];
}
return new Binary(res);
}
public Binary not() {
boolean[] res = new boolean[this.length()];
for (int index = 0; index != this.length(); ++index) {
res[index] = ! _value[index];
}
return new Binary(res);
}
}
Conclusion
Exemple pour la question : Binary bin1 = new Binary("01010101"); Binary bin2 = new Binary("00001111"); Binary res = bin1.and(bin2); Les opérations supportées sont et (and), ou (or), ou exclusif (xor) et non (not) Je n'ai pas relevé de bugs...
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
Exploitation du fichier binaire de validation d'un formulaire [ par SONY30 ]
J'aimerai savoir si quelqu'un s'était déjà penché sur l'exploitation du fichier binaire en validation d'un formulaire lors d'un transfert d'image par
pb de bits [ par Aldee ]
Salut,Je veux travailler avec des nombres notés en binaire. Comment j'explique a mon application, que c'est une notation binaire??Si j'écris = 1000111
SWING/font/XML/arbre binaire algo URGENT !!! [ par mkstraits ]
salut !à partir d'une interface swing java, on est supposé pouvoir entrer des formules (dans un certain langage de logique) exemple simple: (a.b)=(c+d
Representation graphique d'1 arbre binaire [ par smayemba ]
Bonjour et bonne année 2003 à tous. Dans le cadre de mon projet,il m'est demandé de représenter graphiquement les arbres binaires gérées par mon soft.
Calculette a la con [ par Inc0 ]
Voila je voudrai faire une calculette, lors de la compilation il ya un bon nombre d' erreurs, un dizaine, je comprends pas pourquoi , sa m' enerve et
Calculette a la con [ par Inc0 ]
Voila je voudrai faire une calculette, lors de la compilation il ya un bon nombre d' erreurs, un dizaine, je comprends pas pourquoi , sa m' enerve et
Arbre binaire java [ par frances ]
J'étude au Portugal. Je doit faire un programme em JAVA d'arbres binaires qui demande a l'utilizateur s'il veux ajouter ou suprimmer une donnée et que
arbres RougeNoirs et arbre binaire de recherche [ par marie95 ]
projet sur les arbres, créer une classe pour rechercher, ajouter et supprimer Visualiser les arbres
Les nombres négatifs et le complément à 2 [ par Tara ]
Bonjour à tous,Je désire lire un fichier au format binaire dans lequel chaque bit a une signification précise et donc son importance. A la lecture du
Lecture de fichier binaire [ par homerosaur ]
Salut à tous.Est-ce que quelqu'un aurais la gentillesse de m'expliquer comment lire un fichier binaire.Mille mercis d'avance
|
Derniers Blogs
MBA : POURQUOI FAIRE ET COMMENT LE CHOISIR ?MBA : POURQUOI FAIRE ET COMMENT LE CHOISIR ? par ROMELARD Fabrice
Formation initiale Durant la formation, le découpage classique est le suivant (je donnerai les équivalences Suisse lorsque je les connaîtrais) : Ecole primaire jusqu'au Collège : Formation générale permettant d'obtenir les méthodes...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice Y'A DES ERREURS QUI PEUVENT RENDRE LE DéVELOPPEUR VIOLENTY'A DES ERREURS QUI PEUVENT RENDRE LE DéVELOPPEUR VIOLENT par Aleks
Quand on a ce genre d'erreur sans log :
Et bas on a juste envie de choper le gas de Microsoft qu'a développé ça et lui foutre des baffes de Coboye ! ...
Cliquez pour lire la suite de l'article par Aleks [HYPER-V 3] PRéSENTATION DES COMMANDLETS POWERSHELL[HYPER-V 3] PRéSENTATION DES COMMANDLETS POWERSHELL par Pierrick CATRO-BROUILLET
Avec la sortie prochaine de la Beta Consumer Preview de Windows 8, j'avais envie de revenir sur une des fonctionnalités que j'attends le plus et que, en bon geek que je suis, j'utilise déjà : Hyper-V 3 ainsi son module PowerShell.
Il y a déjà pléthor...
Cliquez pour lire la suite de l'article par Pierrick CATRO-BROUILLET IIS7 - COMPRESSION GZIPIIS7 - COMPRESSION GZIP par cyril
La compression GZIP permet d'améliorer les performances de navigation en compressant ce qu'envoie le serveur à un client. Pour comprendre comment cela fonctionne, regardons ce qu'il se passe au niveau HTTP lorsqu'un client tente d'accéder à une ress...
Cliquez pour lire la suite de l'article par cyril SHAREPOINT 15 TECHNICAL PREVIEW MANAGED OBJECT MODEL SOFTWARE DEVELOPMENT KITSHAREPOINT 15 TECHNICAL PREVIEW MANAGED OBJECT MODEL SOFTWARE DEVELOPMENT KIT par Matthew
http://www.microsoft.com/download/en/details.aspx?id=28768&utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+MicrosoftDownloadCenter+(Microsoft+Download+Center) ...
Cliquez pour lire la suite de l'article par Matthew
Logiciels
Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning Academy System (17.1.3.0)ACADEMY SYSTEM (17.1.3.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System COLLECTOR PLUS (3.00B)COLLECTOR PLUS (3.00B)COLLECTOR PLUS version 3.00B est un logiciel utilisant une base de données alimentée par :
- L... Cliquez pour télécharger COLLECTOR PLUS PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO LettresFaciles 2011 (8.0.0.1)LETTRESFACILES 2011 (8.0.0.1)LettresFaciles est un logiciel facilitant la création et la rédaction de lettres types.
Son inte... Cliquez pour télécharger LettresFaciles 2011
|