Código:
#include <iostream>
using namespace std;
int main()
{
struct bits
{
int byte:1; //un solo bit asignado
int word:1; //un solo bit asignado
};
bits gate1=
{
true, //al "objeto" gate1.byte se le asigna 1
false //al "objeto" gate1.word se le asigna 0
};
cout<<gate1.byte<<"\t"<<gate1.word<<endl;
}
Donde el resultado es el siguiente
-1 0
En cambio si aumento el campo de bits de bytea dos asi
Código:
#include <iostream>
using namespace std;
int main()
{
struct bits
{
int byte:2; //dos bits asignados
int word:1; //un solo bit asignado
};
bits gate1=
{
true, //al "objeto" gate1.byte se le asigna 1
false //al "objeto" gate1.word se le asigna 0
};
cout<<gate1.byte<<"\t"<<gate1.word<<endl;
}
Donde el resultado es el siguiente
1 0
Notese la diferencia de signo del 1,alguien me podría dar una explicación a esto, ya que true solo tomo el valor de 1 no deberia ser suficiente con solo asignarle un bit para hacerlo.