Comment utilisez-vous les drapeaux bitwise en C ++?

Comme par cette site, je souhaite représenter un Labyrinthe avec un 2 dimensions tableau de 16 bits entiers.

Chaque 16 bits entier doit contenir les informations suivantes:

Voici une façon de le faire (ce n'est pas la seule): un 12x16 labyrinthe de la grille peut être représenté comme une matrice m[16][12] des entiers de 16 bits. Chaque élément du tableau qui aurait contient toutes les informations d'une seule cellule correspondante dans la grille, avec le nombre entier de bits mappé comme ceci:

le texte d'alt http://www.mazeworks.com/mazegen/mazetut/tut5.gif

Pour abattre un mur, de définir une frontière, ou de créer un chemin particulier, tout ce que nous devons faire est de flip bits dans un ou deux éléments du tableau.

Comment puis-je utiliser bit à bit des drapeaux sur 16 bits entiers afin que je puisse régler chacun de ces bits et vérifier si elles sont ensemble.

J'aimerais le faire sous une forme facilement lisible (c'est à dire, la Frontière.W, Frontière.E, Les Murs.N, etc).

Comment est-ce fait en C++? Puis-je utiliser hexadécimal pour représenter chacun (c'est à dire, les Murs.N = 0x02, les Murs.E = 0x04, etc)? Dois-je utiliser un enum?


Voir aussi Comment définissez-vous, claire, et de basculer d'un seul bit?.

source d'informationauteur KingNestor