文章

35

粉丝

0

获赞

183

访问

5.9k

头像
位运算 关于bitset常见操作记录题解:
P1906 华东师范大学2022年机试
发布于2026年3月11日 23:06
阅读数 100

#include<bits/stdc++.h>
using namespace std;

int main()
{
	int x, i, j; cin >> x >> i >> j;
	bitset<32> bit(x);
	bool a = bit[i], b = bit[j];
	bit[i] = b, bit[j] = a;
	
	cout << bit.to_ulong();
}

之前有一个佬总结过但是我找不到原文了orz,特此记录一下,爱来自gpt:
 

#include <iostream>
#include <bitset>
#include <string>
using namespace std;

int main() {

    // ==============================
    // 1. 创建 bitset
    // ==============================

    bitset<8> a;            // 默认全为0 -> 00000000
    bitset<8> b(10);        // 用十进制初始化 -> 00001010
    bitset<8> c("1011");    // 用二进制字符串初始化 -> 00001011

    cout << "a: " << a << endl;
    cout << "b: " << b << endl;
    cout << "c: " << c << endl;

    // ==============================
    // 2. 访问某一位
    // 下标从右往左,从0开始
    // ==============================

    cout << "b[1...
登录查看完整内容


登录后发布评论

1 条评论
liux662
2026年3月11日 23:07

string s = bitset<32>(n).to_string();

int pos = s.find('1');
cout << s.substr(pos) << endl;

还有一个骚的

赞(0)
回复给: