C++ 有人能解释一下这个输出的逻辑吗?
我正在打印一个字符串(由stl中的位集创建),然后直接打印该字符串,并使用循环打印为什么输出中存在差异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<&
#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;