我想要一个数据类型来存储一个 21 位长的二进制数,我可以对其进行操作。我试过
unsigned long long int
Run Code Online (Sandbox Code Playgroud)
它只是很小很小。这浪费了很多空间,因为我的数字是二进制的,而计算机将它存储为一个整数,所以问题是有一种类型可以将它存储为二进制数,但我仍然可以对它进行模块化操作。
我阅读了一些相关的帖子,但认为它们并没有完全解决我的问题。如果有一个我错过了,我会很感激有人指点我,谢谢。
更新所以听到是问题的代码的片段
它在崩溃之后
unsigned long long int a;
cin>>a;
Run Code Online (Sandbox Code Playgroud)
哪些实习生必须去
void convertNumtoArray(unsigned long long int a, x & binaryA){
int j=0;
while(a!=0){
unsigned long long int remainder=a % 10;
a=a/10;
binaryA.a[j]=remainder;
binaryA.length_a=j+1;
j++;
}
}
Run Code Online (Sandbox Code Playgroud)
我想要一个数据类型来存储一个 21 位长的二进制数,我可以对其进行操作。
解决此问题的一种方法是使用bitset
,这是构造和使用此类对象的示例:
#include <iostream>
#include <string>
#include <bitset>
int main ()
{
std::bitset<16> foo;
std::bitset<16> bar (0xfa2);
std::bitset<16> baz (std::string("0101111001"));
std::cout << "foo: " << foo << '\n';
std::cout << "bar: " << bar << '\n';
std::cout << "baz: " << baz << '\n';
}
Run Code Online (Sandbox Code Playgroud)
上面的打印:
foo: 0000000000000000
bar: 0000111110100010
baz: 0000000101111001
Run Code Online (Sandbox Code Playgroud)
这使您可以直接访问要定义的变量的大小(在您的情况下为 21 位?),以位为单位,以及二进制操作的可能性。
归档时间: |
|
查看次数: |
9269 次 |
最近记录: |