输出多种进制:
- 2进制:使用
bitset
头文件 - 8进制:
%o
、hex
- 10进制:
%d
- 16进制:
%x
、oct
bitset
注意:bitset 将传入参数转化为二进制补码形式。
常用方法
1
2
3
4
5
6
7
include <bitset>
bitset<n> b; //b有n位,每位都为0
bitset<n> b(val); //b有n位,每位都是val对应的二进制
bitset<n> b(u); //b是unsigned long型u的一个副本
bitset<n> b(s); //b是string对象s中含有的位串的副本
bitset<n> b(s, pos, n); //b是s中从位置pos开始的n个位的副本
示例
输出时用to_string()
转为字符串输出
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
#include <string>
#include <bitset>
using namespace std;
int main(int argc, char const *argv[]){
bitset<8> n(15);
cout << n.to_string() << endl;
bitset<8> b(-13);
cout << b.to_string() << endl;
return 0;
}
Output:
1
2
00001111
11110011
拓展
1
2
3
4
5
6
7
8
9
10
#include<iostream>
using namespace std;
int main(int argc, char const *argv[]){
int n = 42;
cout << n << endl;
cout << hex << n << endl; // 输出 16 进制
cout << oct << n << endl; // 输出 8 进制
return 0;
}
Output:
1
2
3
42
2a
52
原文:C++ 如何输出各种进制的数?OJ刷题利器 bitset