在c++数组中存储3位二进制数
Store 3 bit binary numbers in C++ array
我有一个程序,它接受2个输入,N和myarray[]。
cin >> N;
cin >> myarray[];
在这个例子中,假设N=3,这意味着必须分配一个大小为3的整数数组,并假设myarray[]的条目为{1,2,3}。
现在我有一个函数createsubset(),它创建条目{1,2,3}的所有可能子集。我遵循的逻辑是:
包含n个元素的集合的子集的总数为m=2^n,因为一个元素可以在子集中存在或不存在。
所以,当m=7时,对应的二进制符号为111。现在从m=0迭代到m=7来生成所有的子集(除了集合本身是m=8的结果):例子:
m=0, binary=000, subset={ }
m=1, binary=001, subset={c}
m=2, binary=010, subset={b}
m=3, binary=011, subset={b,c}
等等
这是由函数generate()完成的,该函数从m=0迭代到m=8。
void generate()
{
for(m=0; m<8; m++)
{
decimaltobinary(m);
}
}
现在,我必须将decimaltobinary()函数的输出(这是一个3位二进制数)存储在一个数组中,稍后我将使用该数组创建子集。这就是我现在被困住的地方。我们可以在数组中存储多位二进制数并直接使用它吗?请帮我解决这个问题。欢迎对createsubset()函数提出任何建议。
C/c++中的数字以二进制形式存储,因此不需要"转换"它们。你可以使用任何C/c++的无符号整型来存储一个3位的数字,例如,将它们存储在std::vector
相关文章:
- visual在c++中将十进制数转换为二进制数
- 二进制数之和(使用C样式字符串)
- 浮点数为 32 位和 64 位二进制表示形式
- 从两个 4x64 位整数数组中获取取模
- 以 10 c++ 为基数显示 1024 位二进制数
- 二进制数和位标志'x'
- C++ 二进制数到整数值的数组
- 二进制数组中最大连续 1 的起始和结束索引,以 C++ 为单位
- dev如何在C++中比较二进制数
- 递归回溯打印长度为N的二进制数的所有组合,而不使用循环
- 向后打印二进制数
- 十进制,包括负到 32 位二进制转换器
- 使用位黑客反转二进制数
- 对C++中二进制数的1中设置的位进行计数
- C++和溢出位中的二进制数之和
- C++找到二进制数的最高有效位
- 如何使用 testBit 函数检查二进制数组中的特定索引位
- 比较两个二进制数,得到不同的位
- 位操作-使用逐位生成二进制数(C++)
- 在c++数组中存储3位二进制数