C++ 有人能解释一下这个输出的逻辑吗?

C++ 有人能解释一下这个输出的逻辑吗?,c++,stl,c++14,C++,Stl,C++14,我正在打印一个字符串(由stl中的位集创建),然后直接打印该字符串,并使用循环打印为什么输出中存在差异 #include<iostream> #include<bitset> using namespace std; int main() { const int m=16; int n; int arr[m]; cin>>n; bitset<m>bt(n); cout<&

我正在打印一个字符串(由stl中的位集创建),然后直接打印该字符串,并使用循环打印为什么输出中存在差异

#include<iostream>
#include<bitset>
using namespace std;
int main()
{
    const int m=16;
    int n;
    int arr[m];
        cin>>n;
        bitset<m>bt(n);
        cout<<bt<<endl;
        for(int i=0;i<m;i++)
        {
            cout<<bt[i];
        }
}
#包括
#包括
使用名称空间std;
int main()
{
常数int m=16;
int n;
int-arr[m];
cin>>n;
bitsett(n);

cout这与位通常的编号方式一致,
[0]
表示LSB(最低有效位)。当您将位集转换为字符串时-它将包含顺序相反的位,第一个字符对应于
N-1
th位。

cout这是因为
std::bitset::to_string
返回字符串,其中第一位表示最高,这已在您前面的问题(),我想这还不够清楚。早些时候我不知道位图的索引是从最右边的位开始的。因此我无法理解它。感谢您抽出宝贵的时间来解答我的疑问。
cout << bt << endl;
cout << bt[0] << endl;