Visual c++ 如何在VISUAL C+;中创建自己的数据类型变量+;

Visual c++ 如何在VISUAL C+;中创建自己的数据类型变量+;,visual-c++,binary,Visual C++,Binary,我想创建我自己的变量,它只包含两个值0和1。我想创建一个变量,它只包含两个数字0和1,它将等于2位,一个表示1,一个表示0。我建议您对布尔值使用bool 要强制编译器仅使用固定数量的位,请使用位字段: struct onebit { int data: 1 }; 但是,这很可能仍然需要内存中的一个字节。尽管您可以使用结构中的位字段、枚举(仅限制2个值)。但不能限制此类类型的内存使用。程序堆栈(或堆)上至少需要1个字节 因此,如果您有: struct OneBit { short OnOr

我想创建我自己的变量,它只包含两个值0和1。我想创建一个变量,它只包含两个数字0和1,它将等于2位,一个表示1,一个表示0。我建议您对布尔值使用
bool

要强制编译器仅使用固定数量的位,请使用位字段:

struct onebit { int data: 1 };

但是,这很可能仍然需要内存中的一个字节。

尽管您可以使用结构中的位字段、枚举(仅限制2个值)。但不能限制此类类型的内存使用。程序堆栈(或堆)上至少需要1个字节

因此,如果您有:

struct OneBit
{
   short OnOrOff : 1;
};

OneBit
的大小仍然是1字节(最小!)

为什么您不满意
bool
?0&1只需要1位,因为您知道bool是等于1字节的数据类型。我想创建自己的数据类型,它包含两个值,等于2个字节。一个用于1,另一个用于0。正如您所知,bool是等于1字节的数据类型。我想创建自己的数据类型,它包含两个值,等于2字节。一个代表1,另一个代表0。为什么你一直坚持在只需要一个位的地方使用两个位?我想做什么。假设我只有两个(二进制字节值)01000100和01000010。我想让它们等于1和0。比如:01000100=1和01000010=0。现在告诉我怎么做。你看了
std::map
?你能给我解释一下吗?好的,实际上我想做的是压缩两个二进制值。假设我有两个二进制(字节)值01000100和01000010。首先将其压缩为:01000100=1和01000010=0,然后将其解压缩为1=01000100和0=01000010。您应该始终发布可理解的问题。试试这个:问一个问题,等几秒钟再读。你自己能理解吗?哈哈哈哈,我实际上是一个15岁的男孩。我是计算机编程新手,我的英语很差,这就是为什么。。。。。。。我为此道歉