问题描述
要求我生成一个可以处理数字...二进制包的模板,并返回相应的整数。但是,我对以下代码如何产生二进制包感到好奇。我看到的唯一输入是6。我可以认为2 ^ 6为64与包为64位有关,但是它实际上是如何产生的?
以下内容也可能相关
输入内容可能像这样
2
65 1
10 0
代码如下
template <int n,bool...digits>
struct CheckValues {
static void check(int x,int y)
{
CheckValues<n-1,digits...>::check(x,y);
CheckValues<n-1,1,y);
}
};
template <bool...digits>
struct CheckValues<0,digits...> {
static void check(int x,int y)
{
int z = reversed_binary_value<digits...>();
std::cout << (z+64*y==x);
}
};
int main()
{
int t; std::cin >> t;
for (int i=0; i!=t; ++i) {
int x,y;
cin >> x >> y;
CheckValues<6>::check(x,y);
cout << "\n";
}
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)