我正在制作一个模拟器,模拟处理器的乘法方法.首先,我必须将十进制形式转换为二进制,每个二进制表示位存储在数组中的不同位置.现在,如上所述存储在数组中的两个二进制数的乘法非常复杂并且也非常消耗内存.
因为我必须遵循这个方法;
1000
X
1110
`0000`
`1000`
`1000`
`1000`
Run Code Online (Sandbox Code Playgroud)
= 1110000
我知道我可以通过将小数形式乘以一起然后将它们转换为二进制来轻松实现这一点,但不幸的是,这里不需要.
我在想是否有办法将存储在数组中的二进制数存储为包含二进制数的单个整数.或者用于乘以存储在数组中的二进制位的任何其他简单方法.例如:
a[0]=1,a[1]=1, .... ,a[32]=0
所以我想要包含整数变量
int x=110....0
有没有办法做到这一点?
问候
您可以使用std :: bitset
std::bitset<32> b;
b[0] = 1;
b[1] = 1;
...
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8666 次 |
| 最近记录: |