谁能解释这是如何产生一包零的?

问题描述

要求我生成一个可以处理数字...二进制包的模板,并返回相应的整数。但是,我对以下代码如何产生二进制包感到好奇。我看到的唯一输入是6。我可以认为2 ^ 6为64与包为64位有关,但是它实际上是如何产生的?

以下内容也可能相关

enter image description here

输入内容可能像这样

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 (将#修改为@)