以十为基数的数字到布尔数组,该数组要求二进制/基数为 2 的数字
base ten number to array of bool that repricent a binary/base 2 number
我正在尝试在C++中创建一个函数,该函数将接收一个 den 数字并返回一个表示二进制/基数 2 的布尔数组,我需要数组长度为 16 个项目,任何帮助将不胜感激,谢谢。
您可以直接使用std::bitset<n>
,无需任何功能,如下所示
#include <iostream>
#include <bitset>
int main(){
constexpr size_t myInt = 2;
constexpr std::bitset<16> binaryRepresentaion {myInt};
std::cout << binaryRepresentaion;
}
出的是
0000000000000010
住
我从Berto99借了constexpr
。这是一个很好的观点。
除了bitset
,你可以编写自己的算法:
constexpr std::array<bool, 16> toBoolArray(unsigned int n){
auto arr = std::array<bool, 16>();
for(auto i = 0; i < 16; i++){
arr[i] = n%2;
n/=2;
}
return arr;
}
您正在寻找一个位集:
#include<位集>#includeint main(( { std::bitset<16> bs = 16; std::cout <<bs <<''; } 位集>
输出:
0000000000010000
为您提供的另一种解决方案; 我看到了您的问题,并且通过使用位集,答案效果很好。但是,如果您不想使用预先构建的比特流结构并拥有所需操作的更"原始"格式,我为您提出了一个不同的解决方案。我们有 theFunction,它可以执行所有必要的操作,以根据您的要求将任何给定的整数转换为数组格式的二进制表示。这是代码:
#include <iostream>
#include <cmath>
bool* theFunction(int);
int main() {
bool *p;
int denNum;
std::cout << "Enter a den number!";
std::cin >> denNum;
p = theFunction(denNum);
for (int i = 0; i < 16; i++ ){
std::cout << *p ;
p++;
}
return 0;
}
bool* theFunction(int number) {
int maxPot=2;
bool pivot;
int i=0;
static bool arr [16];
//Number's conversion to binary
while(number> 1){
while(maxPot<number){
maxPot=pow(maxPot,2);
}
maxPot=maxPot/2;
if( number>= maxPot){
arr[i]=1;
number = number - maxPot;
}
else
arr[i]=0;
i++;
}
//Loop to set 0 to leftover bits
if(i<16){
for(i;i<16;i++)
arr[i]=0;
}
//Loop for reversing the array
for(int b=0; b<8 ; b++){
pivot=arr[b];
arr[b]=arr[i];
arr[i]=pivot;
i=i-1;
}
return arr;
}
相关文章:
- 在将数字随机生成为数组期间从内存输出随机数的数组
- 如何计算数组中元素的位数?(不是数组的长度),并计算其数字的总和
- 数组/c++中的大量数字
- 遍历并行数组以确定C++中的最大数字
- 整数区间(或 int 数组)中每个数字的出现次数
- 如何在 C++ 中将文件中的逗号分隔数字读取到数组中?
- 将随机生成的数字添加到数组 + 对这些数组求平均值
- 遇到此问题时遇到困难:允许用户输入数组的值并使用 for,而循环也输出输入的最大数字
- 获取 2D 数组 c++ 中的所有数字对
- 为什么使用数组元素查找最大数字的程序不起作用?
- 如何从向量或数组中选择最常见的数字?(前五名)C++
- 如何从保存在 Java 中C++的字节数组中读取数字?
- 以十为基数的数字到布尔数组,该数组要求二进制/基数为 2 的数字
- C++ 检查结果数组中有多少次数字
- 如何在不使用 C++ 中的数组或函数的情况下查找 N 位数字的所有排列
- 如何在C++中有效地将数字值重新分配给字符数组
- 查找数组中的最小数字
- 查找数组中重复(重复)数字的索引
- 我必须找到给定数组中所有数字的周期,就像有很多解决方案,但数组的大小是 10^5
- 类、数字/数组或对象中的对象