2 votes

Pourquoi un ensemble de bits C++ initialisé à l'aide d'une chaîne de caractères est-il inversé ?

Pour la première fois, j'ai initialisé un jeu de bits à l'aide d'une chaîne de caractères et j'ai découvert que les bits sont stockés dans l'ordre inverse, c'est-à-dire :

bitset<3> test(string("001"));

les bits sont alors stockés sous la forme b test[0] = 1 [ ] test[2] = 0

Je ne sais pas si je fais quelque chose de mal ou si c'est comme ça que ça devrait se passer.

3voto

John Dibling Points 56814

C'est ainsi qu'il devrait en être. Les bits stockés dans un jeu de bits sont ordonnés de telle sorte que l'index d'un bit est le facteur par lequel il est augmenté.

En d'autres termes, la valeur à test[0] est le bit 2^0, test[1] est de 2^1, test[2] est 2^2, etc.

L'endianité n'a rien à voir avec cela.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X